mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-02 00:50:07 +01: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)
|
||||
{
|
||||
/* This is also the list of intrinsics that are grouped. */
|
||||
/* load_ubo is ignored because it's usually cheap. */
|
||||
switch (intr->intrinsic) {
|
||||
/* Image loads. */
|
||||
case nir_intrinsic_image_load:
|
||||
case nir_intrinsic_image_deref_load:
|
||||
case nir_intrinsic_bindless_image_load:
|
||||
case nir_intrinsic_image_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_load_ssbo:
|
||||
/* Fragment mask loads. (samples_identical also loads it) */
|
||||
case nir_intrinsic_image_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_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;
|
||||
default:
|
||||
return NULL;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue