r600: fix buffer resinfo opcode translation.
The vtx operations never got translated, so things worked by 0 being equal to 0, translate them so we can use the proper buffer resinfo code. Reviewed-by: Roland Scheidegger <sroland@vmware.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
@@ -1510,7 +1510,7 @@ int cm_bytecode_add_cf_end(struct r600_bytecode *bc)
|
||||
/* common to all 3 families */
|
||||
static int r600_bytecode_vtx_build(struct r600_bytecode *bc, struct r600_bytecode_vtx *vtx, unsigned id)
|
||||
{
|
||||
bc->bytecode[id] = S_SQ_VTX_WORD0_VTX_INST(vtx->op) |
|
||||
bc->bytecode[id] = S_SQ_VTX_WORD0_VTX_INST(r600_isa_fetch_opcode(bc->isa->hw_class, vtx->op)) |
|
||||
S_SQ_VTX_WORD0_BUFFER_ID(vtx->buffer_id) |
|
||||
S_SQ_VTX_WORD0_FETCH_TYPE(vtx->fetch_type) |
|
||||
S_SQ_VTX_WORD0_SRC_GPR(vtx->src_gpr) |
|
||||
|
||||
@@ -6875,7 +6875,7 @@ static int r600_do_buffer_txq(struct r600_shader_ctx *ctx, int reg_idx, int offs
|
||||
} else {
|
||||
struct r600_bytecode_vtx vtx;
|
||||
memset(&vtx, 0, sizeof(vtx));
|
||||
vtx.op = FETCH_OP_GDS_MIN_UINT; /* aka GET_BUFFER_RESINFO */
|
||||
vtx.op = FETCH_OP_GET_BUFFER_RESINFO;
|
||||
vtx.buffer_id = id + R600_MAX_CONST_BUFFERS;
|
||||
vtx.fetch_type = SQ_VTX_FETCH_NO_INDEX_OFFSET;
|
||||
vtx.src_gpr = 0;
|
||||
|
||||
Reference in New Issue
Block a user