mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-18 23:30:30 +01:00
nir: add additional flag to resource_intel for embedded samplers
This will enable specific lowering of embedded samplers. Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Ivan Briano <ivan.briano@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22151>
This commit is contained in:
parent
99047451c9
commit
259cdc5496
4 changed files with 12 additions and 3 deletions
|
|
@ -268,6 +268,7 @@ typedef enum {
|
|||
nir_resource_intel_pushable = 1u << 1,
|
||||
nir_resource_intel_sampler = 1u << 2,
|
||||
nir_resource_intel_non_uniform = 1u << 3,
|
||||
nir_resource_intel_sampler_embedded = 1u << 4,
|
||||
} nir_resource_data_intel;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1997,9 +1997,9 @@ intrinsic("load_reloc_const_intel", dest_comp=1, bit_sizes=[32],
|
|||
# With this intrinsic, we can just check the surface_index src with
|
||||
# nir_src_is_const() and ignore set_offset.
|
||||
#
|
||||
# src[] = { set_offset, surface_index, array_index }
|
||||
# src[] = { set_offset, surface_index, array_index, bindless_base_offset }
|
||||
intrinsic("resource_intel", dest_comp=1, bit_sizes=[32],
|
||||
src_comp=[1, 1, 1],
|
||||
src_comp=[1, 1, 1, 1],
|
||||
indices=[DESC_SET, BINDING, RESOURCE_ACCESS_INTEL, RESOURCE_BLOCK_INTEL],
|
||||
flags=[CAN_ELIMINATE, CAN_REORDER])
|
||||
|
||||
|
|
|
|||
|
|
@ -1517,6 +1517,9 @@ print_intrinsic_instr(nir_intrinsic_instr *instr, print_state *state)
|
|||
case nir_resource_intel_non_uniform:
|
||||
fprintf(fp, "non-uniform");
|
||||
break;
|
||||
case nir_resource_intel_sampler_embedded:
|
||||
fprintf(fp, "sampler-embedded");
|
||||
break;
|
||||
default:
|
||||
fprintf(fp, "unknown");
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -867,6 +867,7 @@ build_surface_index_for_binding(nir_builder *b,
|
|||
set_offset,
|
||||
surface_index,
|
||||
array_index,
|
||||
nir_undef(b, 1, 32) /* bindless_base_offset */,
|
||||
.desc_set = set,
|
||||
.binding = binding,
|
||||
.resource_block_intel = state->set[set].binding[binding].push_block,
|
||||
|
|
@ -946,7 +947,11 @@ build_sampler_handle_for_binding(nir_builder *b,
|
|||
state->set[set].binding[binding].sampler_offset + plane);
|
||||
}
|
||||
|
||||
return nir_resource_intel(b, set_offset, sampler_index, array_index,
|
||||
return nir_resource_intel(b,
|
||||
set_offset,
|
||||
sampler_index,
|
||||
array_index,
|
||||
nir_undef(b, 1, 32) /* bindless_base_offset */,
|
||||
.desc_set = set,
|
||||
.binding = binding,
|
||||
.resource_access_intel =
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue