mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 05:18:08 +02:00
ir3: support texture and sampler index with offsets
"If this texture instruction has a nir_tex_src_texture_offset source, then the texture index is given by texture_index + texture_offset." This fixes the failures for: spec@arb_arrays_of_arrays@execution@sampler@fs-nested-struct-arrays-nonconst-nested-array spec@arb_gl_spirv@execution@uniform@sampler2d-nonconst-nested-array Signed-off-by: Amber Amber <amber@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20954>
This commit is contained in:
parent
196882a147
commit
17b610771d
3 changed files with 8 additions and 10 deletions
|
|
@ -105,11 +105,6 @@ spec@!opengl 2.0@gl-2.0-edgeflag-immediate,Crash
|
|||
spec@!opengl 1.0@gl-1.0-edgeflag,Crash
|
||||
spec@!opengl 1.0@gl-1.0-edgeflag-quads,Crash
|
||||
|
||||
|
||||
spec@arb_arrays_of_arrays@execution@sampler@fs-nested-struct-arrays-nonconst-nested-array,Fail
|
||||
# Skips prior to exposing gl45, now fails for same reason as above test
|
||||
spec@arb_gl_spirv@execution@uniform@sampler2d-nonconst-nested-array,Fail
|
||||
|
||||
spec@arb_depth_buffer_float@fbo-clear-formats stencil,Fail
|
||||
spec@arb_depth_buffer_float@fbo-clear-formats stencil@GL_DEPTH32F_STENCIL8,Fail
|
||||
spec@arb_depth_buffer_float@fbo-generatemipmap-formats,Fail
|
||||
|
|
|
|||
|
|
@ -98,11 +98,6 @@ spec@!opengl 2.0@gl-2.0-edgeflag-immediate,Crash
|
|||
spec@!opengl 1.0@gl-1.0-edgeflag,Crash
|
||||
spec@!opengl 1.0@gl-1.0-edgeflag-quads,Crash
|
||||
|
||||
|
||||
spec@arb_arrays_of_arrays@execution@sampler@fs-nested-struct-arrays-nonconst-nested-array,Fail
|
||||
# Skips prior to exposing gl45, now fails for same reason as above test
|
||||
spec@arb_gl_spirv@execution@uniform@sampler2d-nonconst-nested-array,Fail
|
||||
|
||||
spec@arb_depth_buffer_float@fbo-clear-formats stencil,Fail
|
||||
spec@arb_depth_buffer_float@fbo-clear-formats stencil@GL_DEPTH32F_STENCIL8,Fail
|
||||
spec@arb_depth_buffer_float@fbo-generatemipmap-formats,Fail
|
||||
|
|
|
|||
|
|
@ -2885,6 +2885,10 @@ get_tex_samp_tex_src(struct ir3_context *ctx, nir_tex_instr *tex)
|
|||
if (texture_idx >= 0) {
|
||||
texture = ir3_get_src(ctx, &tex->src[texture_idx].src)[0];
|
||||
texture = ir3_COV(ctx->block, texture, TYPE_U32, TYPE_U16);
|
||||
if (tex->texture_index != 0) {
|
||||
texture = ir3_ADD_U(b, texture, 0, create_immed_typed(b, tex->texture_index, TYPE_U16), 0);
|
||||
texture->dsts[0]->flags |= IR3_REG_HALF;
|
||||
}
|
||||
} else {
|
||||
/* TODO what to do for dynamic case? I guess we only need the
|
||||
* max index for astc srgb workaround so maybe not a problem
|
||||
|
|
@ -2900,6 +2904,10 @@ get_tex_samp_tex_src(struct ir3_context *ctx, nir_tex_instr *tex)
|
|||
if (sampler_idx >= 0) {
|
||||
sampler = ir3_get_src(ctx, &tex->src[sampler_idx].src)[0];
|
||||
sampler = ir3_COV(ctx->block, sampler, TYPE_U32, TYPE_U16);
|
||||
if (tex->sampler_index != 0) {
|
||||
sampler = ir3_ADD_U(b, sampler, 0, create_immed_typed(b, tex->sampler_index, TYPE_U16), 0);
|
||||
sampler->dsts[0]->flags |= IR3_REG_HALF;
|
||||
}
|
||||
} else {
|
||||
sampler = create_immed_typed(ctx->block, tex->sampler_index, TYPE_U16);
|
||||
info.samp_idx = tex->texture_index;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue