spirv: Identify non-temporal image operand added in SPIR-V 1.6

Map it to the existing ACCESS_STREAM_CACHE_POLICY access mode.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14209>
This commit is contained in:
Caio Oliveira 2021-09-20 11:10:10 -07:00
parent 729df14e45
commit 53f38d3683

View file

@ -3078,6 +3078,9 @@ vtn_handle_texture(struct vtn_builder *b, SpvOp opcode,
enum gl_access_qualifier access = 0;
vtn_foreach_decoration(b, sampled_val, non_uniform_decoration_cb, &access);
if (operands & SpvImageOperandsNontemporalMask)
access |= ACCESS_STREAM_CACHE_POLICY;
if (sampled_val->propagated_non_uniform)
access |= ACCESS_NON_UNIFORM;
@ -3329,6 +3332,8 @@ vtn_handle_image(struct vtn_builder *b, SpvOp opcode,
if (operands & SpvImageOperandsVolatileTexelMask)
access |= ACCESS_VOLATILE;
if (operands & SpvImageOperandsNontemporalMask)
access |= ACCESS_STREAM_CACHE_POLICY;
break;
}
@ -3369,6 +3374,8 @@ vtn_handle_image(struct vtn_builder *b, SpvOp opcode,
if (operands & SpvImageOperandsVolatileTexelMask)
access |= ACCESS_VOLATILE;
if (operands & SpvImageOperandsNontemporalMask)
access |= ACCESS_STREAM_CACHE_POLICY;
break;
}