static void
fd3_emit_const_ptrs(struct fd_ringbuffer *ring, gl_shader_stage type,
- uint32_t regid, uint32_t num, struct pipe_resource **prscs, uint32_t *offsets)
+ uint32_t regid, uint32_t num, struct fd_bo **bos, uint32_t *offsets)
{
uint32_t anum = align(num, 4);
uint32_t i;
CP_LOAD_STATE_1_STATE_TYPE(ST_CONSTANTS));
for (i = 0; i < num; i++) {
- if (prscs[i]) {
- OUT_RELOC(ring, fd_resource(prscs[i])->bo, offsets[i], 0, 0);
+ if (bos[i]) {
+ OUT_RELOC(ring, bos[i], offsets[i], 0, 0);
} else {
OUT_RING(ring, 0xbad00000 | (i << 16));
}
static void
emit_const_ptrs(struct fd_ringbuffer *ring,
const struct ir3_shader_variant *v, uint32_t dst_offset,
- uint32_t num, struct pipe_resource **prscs, uint32_t *offsets)
+ uint32_t num, struct fd_bo **bos, uint32_t *offsets)
{
/* TODO inline this */
assert(dst_offset + num <= v->constlen * 4);
- fd3_emit_const_ptrs(ring, v->type, dst_offset, num, prscs, offsets);
+ fd3_emit_const_ptrs(ring, v->type, dst_offset, num, bos, offsets);
}
#define VERT_TEX_OFF 0
static void
fd4_emit_const_ptrs(struct fd_ringbuffer *ring, gl_shader_stage type,
- uint32_t regid, uint32_t num, struct pipe_resource **prscs, uint32_t *offsets)
+ uint32_t regid, uint32_t num, struct fd_bo **bos, uint32_t *offsets)
{
uint32_t anum = align(num, 4);
uint32_t i;
CP_LOAD_STATE4_1_STATE_TYPE(ST4_CONSTANTS));
for (i = 0; i < num; i++) {
- if (prscs[i]) {
- OUT_RELOC(ring, fd_resource(prscs[i])->bo, offsets[i], 0, 0);
+ if (bos[i]) {
+ OUT_RELOC(ring, bos[i], offsets[i], 0, 0);
} else {
OUT_RING(ring, 0xbad00000 | (i << 16));
}
static void
emit_const_ptrs(struct fd_ringbuffer *ring,
const struct ir3_shader_variant *v, uint32_t dst_offset,
- uint32_t num, struct pipe_resource **prscs, uint32_t *offsets)
+ uint32_t num, struct fd_bo **bos, uint32_t *offsets)
{
/* TODO inline this */
assert(dst_offset + num <= v->constlen * 4);
- fd4_emit_const_ptrs(ring, v->type, dst_offset, num, prscs, offsets);
+ fd4_emit_const_ptrs(ring, v->type, dst_offset, num, bos, offsets);
}
static void
static void
fd5_emit_const_ptrs(struct fd_ringbuffer *ring, gl_shader_stage type,
- uint32_t regid, uint32_t num, struct pipe_resource **prscs, uint32_t *offsets)
+ uint32_t regid, uint32_t num, struct fd_bo **bos, uint32_t *offsets)
{
uint32_t anum = align(num, 2);
uint32_t i;
OUT_RING(ring, CP_LOAD_STATE4_2_EXT_SRC_ADDR_HI(0));
for (i = 0; i < num; i++) {
- if (prscs[i]) {
- OUT_RELOC(ring, fd_resource(prscs[i])->bo, offsets[i], 0, 0);
+ if (bos[i]) {
+ OUT_RELOC(ring, bos[i], offsets[i], 0, 0);
} else {
OUT_RING(ring, 0xbad00000 | (i << 16));
OUT_RING(ring, 0xbad00000 | (i << 16));
static void
emit_const_ptrs(struct fd_ringbuffer *ring,
const struct ir3_shader_variant *v, uint32_t dst_offset,
- uint32_t num, struct pipe_resource **prscs, uint32_t *offsets)
+ uint32_t num, struct fd_bo **bos, uint32_t *offsets)
{
/* TODO inline this */
assert(dst_offset + num <= v->constlen * 4);
- fd5_emit_const_ptrs(ring, v->type, dst_offset, num, prscs, offsets);
+ fd5_emit_const_ptrs(ring, v->type, dst_offset, num, bos, offsets);
}
void
static void
emit_const_ptrs(struct fd_ringbuffer *ring,
const struct ir3_shader_variant *v, uint32_t dst_offset,
- uint32_t num, struct pipe_resource **prscs, uint32_t *offsets)
+ uint32_t num, struct fd_bo **bos, uint32_t *offsets)
{
unreachable("shouldn't be called on a6xx");
}
static void emit_const_ptrs(struct fd_ringbuffer *ring,
const struct ir3_shader_variant *v, uint32_t dst_offset,
- uint32_t num, struct pipe_resource **prscs, uint32_t *offsets);
+ uint32_t num, struct fd_bo **bos, uint32_t *offsets);
static void
emit_const_asserts(struct fd_ringbuffer *ring,
if (v->constlen > offset) {
uint32_t params = const_state->num_ubos;
uint32_t offsets[params];
- struct pipe_resource *prscs[params];
+ struct fd_bo *bos[params];
for (uint32_t i = 0; i < params; i++) {
struct pipe_constant_buffer *cb = &constbuf->cb[i];
if ((constbuf->enabled_mask & (1 << i)) && cb->buffer) {
offsets[i] = cb->buffer_offset;
- prscs[i] = cb->buffer;
+ bos[i] = fd_resource(cb->buffer)->bo;
} else {
offsets[i] = 0;
- prscs[i] = NULL;
+ bos[i] = NULL;
}
}
assert(offset * 4 + params <= v->constlen * 4);
- emit_const_ptrs(ring, v, offset * 4, params, prscs, offsets);
+ emit_const_ptrs(ring, v, offset * 4, params, bos, offsets);
}
}
struct ir3_stream_output_info *info = &v->shader->stream_output;
uint32_t params = 4;
uint32_t offsets[params];
- struct pipe_resource *prscs[params];
+ struct fd_bo *bos[params];
for (uint32_t i = 0; i < params; i++) {
struct pipe_stream_output_target *target = so->targets[i];
if (target) {
offsets[i] = (so->offsets[i] * info->stride[i] * 4) +
target->buffer_offset;
- prscs[i] = target->buffer;
+ bos[i] = fd_resource(target->buffer)->bo;
} else {
offsets[i] = 0;
- prscs[i] = NULL;
+ bos[i] = NULL;
}
}
assert(offset * 4 + params <= v->constlen * 4);
- emit_const_ptrs(ring, v, offset * 4, params, prscs, offsets);
+ emit_const_ptrs(ring, v, offset * 4, params, bos, offsets);
}
}