mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 17:48:10 +02:00
nir/group_loads: handle more loads
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36100>
This commit is contained in:
parent
ab52889d28
commit
aa732f6f30
1 changed files with 20 additions and 9 deletions
|
|
@ -76,24 +76,35 @@ static nir_instr *
|
||||||
get_intrinsic_resource(nir_intrinsic_instr *intr)
|
get_intrinsic_resource(nir_intrinsic_instr *intr)
|
||||||
{
|
{
|
||||||
/* This is also the list of intrinsics that are grouped. */
|
/* This is also the list of intrinsics that are grouped. */
|
||||||
/* load_ubo is ignored because it's usually cheap. */
|
|
||||||
switch (intr->intrinsic) {
|
switch (intr->intrinsic) {
|
||||||
|
/* Image loads. */
|
||||||
case nir_intrinsic_image_load:
|
case nir_intrinsic_image_load:
|
||||||
case nir_intrinsic_image_deref_load:
|
case nir_intrinsic_image_deref_load:
|
||||||
|
case nir_intrinsic_bindless_image_load:
|
||||||
case nir_intrinsic_image_sparse_load:
|
case nir_intrinsic_image_sparse_load:
|
||||||
case nir_intrinsic_image_deref_sparse_load:
|
case nir_intrinsic_image_deref_sparse_load:
|
||||||
/* Group image_size too because it has the same latency as cache hits. */
|
|
||||||
case nir_intrinsic_image_samples_identical:
|
|
||||||
case nir_intrinsic_image_deref_samples_identical:
|
|
||||||
case nir_intrinsic_bindless_image_samples_identical:
|
|
||||||
case nir_intrinsic_image_size:
|
|
||||||
case nir_intrinsic_image_deref_size:
|
|
||||||
case nir_intrinsic_bindless_image_load:
|
|
||||||
case nir_intrinsic_bindless_image_sparse_load:
|
case nir_intrinsic_bindless_image_sparse_load:
|
||||||
case nir_intrinsic_load_ssbo:
|
/* Fragment mask loads. (samples_identical also loads it) */
|
||||||
case nir_intrinsic_image_fragment_mask_load_amd:
|
case nir_intrinsic_image_fragment_mask_load_amd:
|
||||||
case nir_intrinsic_image_deref_fragment_mask_load_amd:
|
case nir_intrinsic_image_deref_fragment_mask_load_amd:
|
||||||
case nir_intrinsic_bindless_image_fragment_mask_load_amd:
|
case nir_intrinsic_bindless_image_fragment_mask_load_amd:
|
||||||
|
case nir_intrinsic_image_samples_identical:
|
||||||
|
case nir_intrinsic_image_deref_samples_identical:
|
||||||
|
case nir_intrinsic_bindless_image_samples_identical:
|
||||||
|
/* Queries */
|
||||||
|
case nir_intrinsic_image_size:
|
||||||
|
case nir_intrinsic_image_deref_size:
|
||||||
|
case nir_intrinsic_bindless_image_size:
|
||||||
|
case nir_intrinsic_image_samples:
|
||||||
|
case nir_intrinsic_image_deref_samples:
|
||||||
|
case nir_intrinsic_bindless_image_samples:
|
||||||
|
case nir_intrinsic_image_levels:
|
||||||
|
case nir_intrinsic_image_deref_levels:
|
||||||
|
case nir_intrinsic_bindless_image_levels:
|
||||||
|
/* Other loads. */
|
||||||
|
/* load_ubo is ignored because it's usually cheap. */
|
||||||
|
case nir_intrinsic_load_ssbo:
|
||||||
|
case nir_intrinsic_load_global:
|
||||||
return intr->src[0].ssa->parent_instr;
|
return intr->src[0].ssa->parent_instr;
|
||||||
default:
|
default:
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue