mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 16:08:04 +02:00
glsl_to_tgsi: fix instruction order for bindless textures
We emitted instructions loading the bindless handle after the memory instruction. Cc: 17.2 <mesa-stable@lists.freedesktop.org> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
parent
bd1837471a
commit
985338e2cb
1 changed files with 14 additions and 4 deletions
|
|
@ -3625,6 +3625,12 @@ glsl_to_tgsi_visitor::visit_image_intrinsic(ir_call *ir)
|
|||
|
||||
glsl_to_tgsi_instruction *inst;
|
||||
|
||||
st_src_reg bindless;
|
||||
if (imgvar->contains_bindless()) {
|
||||
img->accept(this);
|
||||
bindless = this->result;
|
||||
}
|
||||
|
||||
if (ir->callee->intrinsic_id == ir_intrinsic_image_size) {
|
||||
dst.writemask = WRITEMASK_XYZ;
|
||||
inst = emit_asm(ir, TGSI_OPCODE_RESQ, dst);
|
||||
|
|
@ -3722,8 +3728,7 @@ glsl_to_tgsi_visitor::visit_image_intrinsic(ir_call *ir)
|
|||
}
|
||||
|
||||
if (imgvar->contains_bindless()) {
|
||||
img->accept(this);
|
||||
inst->resource = this->result;
|
||||
inst->resource = bindless;
|
||||
inst->resource.swizzle = MAKE_SWIZZLE4(SWIZZLE_X, SWIZZLE_Y,
|
||||
SWIZZLE_X, SWIZZLE_Y);
|
||||
} else {
|
||||
|
|
@ -4245,6 +4250,12 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir)
|
|||
emit_arl(ir, sampler_reladdr, reladdr);
|
||||
}
|
||||
|
||||
st_src_reg bindless;
|
||||
if (var->contains_bindless()) {
|
||||
ir->sampler->accept(this);
|
||||
bindless = this->result;
|
||||
}
|
||||
|
||||
if (opcode == TGSI_OPCODE_TXD)
|
||||
inst = emit_asm(ir, opcode, result_dst, coord, dx, dy);
|
||||
else if (opcode == TGSI_OPCODE_TXQ) {
|
||||
|
|
@ -4275,8 +4286,7 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir)
|
|||
inst->tex_shadow = GL_TRUE;
|
||||
|
||||
if (var->contains_bindless()) {
|
||||
ir->sampler->accept(this);
|
||||
inst->resource = this->result;
|
||||
inst->resource = bindless;
|
||||
inst->resource.swizzle = MAKE_SWIZZLE4(SWIZZLE_X, SWIZZLE_Y,
|
||||
SWIZZLE_X, SWIZZLE_Y);
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue