diff options
author | Alyssa Rosenzweig <alyssa@rosenzweig.io> | 2021-07-04 23:27:01 -0400 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2021-07-05 20:56:04 +0000 |
commit | 50f012542f3a502aa16c332c78e9d5eaf9336f1f (patch) | |
tree | 2c5b36fbc9d2e8b55b599d7e006a29e0730906ad /src/asahi | |
parent | 8361e24604607a85828c6ef41b6cadaf3adfa82e (diff) |
agx: Handle txl
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718>
Diffstat (limited to 'src/asahi')
-rw-r--r-- | src/asahi/compiler/agx_compile.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/asahi/compiler/agx_compile.c b/src/asahi/compiler/agx_compile.c index 64b4896cc7d..b30720287b1 100644 --- a/src/asahi/compiler/agx_compile.c +++ b/src/asahi/compiler/agx_compile.c @@ -711,11 +711,15 @@ agx_emit_tex(agx_builder *b, nir_tex_instr *instr) { switch (instr->op) { case nir_texop_tex: + case nir_texop_txl: break; default: unreachable("Unhandled texture op"); } + enum agx_lod_mode lod_mode = (instr->op == nir_texop_tex) ? + AGX_LOD_MODE_AUTO_LOD : AGX_LOD_MODE_LOD_MIN; + agx_index coords = agx_null(), texture = agx_immediate(instr->texture_index), sampler = agx_immediate(instr->sampler_index), @@ -731,6 +735,9 @@ agx_emit_tex(agx_builder *b, nir_tex_instr *instr) break; case nir_tex_src_lod: + lod = index; + break; + case nir_tex_src_bias: case nir_tex_src_ms_index: case nir_tex_src_offset: @@ -745,7 +752,7 @@ agx_emit_tex(agx_builder *b, nir_tex_instr *instr) agx_texture_sample_to(b, agx_dest_index(&instr->dest), coords, lod, texture, sampler, offset, agx_tex_dim(instr->sampler_dim, instr->is_array), - AGX_LOD_MODE_AUTO_LOD, /* TODO */ + lod_mode, 0xF, /* TODO: wrmask */ 0); |