mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-14 13:38:20 +02:00
nir: Add sampler and resource heap system values
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40649>
This commit is contained in:
parent
8f4e209de9
commit
c29d8dd4ff
5 changed files with 20 additions and 0 deletions
|
|
@ -2572,6 +2572,10 @@ nir_intrinsic_from_system_value(gl_system_value val)
|
|||
return nir_intrinsic_load_warp_id_arm;
|
||||
case SYSTEM_VALUE_WARP_MAX_ID_ARM:
|
||||
return nir_intrinsic_load_warp_max_id_arm;
|
||||
case SYSTEM_VALUE_SAMPLER_HEAP_PTR:
|
||||
return nir_intrinsic_load_sampler_heap_ptr;
|
||||
case SYSTEM_VALUE_RESOURCE_HEAP_PTR:
|
||||
return nir_intrinsic_load_resource_heap_ptr;
|
||||
default:
|
||||
return nir_num_intrinsics;
|
||||
}
|
||||
|
|
@ -2758,6 +2762,10 @@ nir_system_value_from_intrinsic(nir_intrinsic_op intrin)
|
|||
return SYSTEM_VALUE_WARP_ID_ARM;
|
||||
case nir_intrinsic_load_warp_max_id_arm:
|
||||
return SYSTEM_VALUE_WARP_MAX_ID_ARM;
|
||||
case nir_intrinsic_load_sampler_heap_ptr:
|
||||
return SYSTEM_VALUE_SAMPLER_HEAP_PTR;
|
||||
case nir_intrinsic_load_resource_heap_ptr:
|
||||
return SYSTEM_VALUE_RESOURCE_HEAP_PTR;
|
||||
default:
|
||||
UNREACHABLE("intrinsic doesn't produce a system value");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -365,6 +365,8 @@ visit_intrinsic(nir_intrinsic_instr *instr, struct divergence_state *state)
|
|||
case nir_intrinsic_load_call_return_address_amd:
|
||||
case nir_intrinsic_load_indirect_address_intel:
|
||||
case nir_intrinsic_load_alpha_to_coverage_enable_ir3:
|
||||
case nir_intrinsic_load_sampler_heap_ptr:
|
||||
case nir_intrinsic_load_resource_heap_ptr:
|
||||
is_divergent = false;
|
||||
break;
|
||||
|
||||
|
|
|
|||
|
|
@ -1449,6 +1449,10 @@ intrinsic("cmat_insert", src_comp=[-1, 1, -1, 1])
|
|||
intrinsic("cmat_copy", src_comp=[-1, -1])
|
||||
intrinsic("cmat_transpose", src_comp=[-1, -1], indices=[FP_MATH_CTRL])
|
||||
|
||||
# VK_EXT_descriptor_heap
|
||||
system_value("sampler_heap_ptr", 1, bit_sizes=[64])
|
||||
system_value("resource_heap_ptr", 1, bit_sizes=[64])
|
||||
|
||||
# Select an output vertex in a poly GS. Takes the stream-local vertex ID.
|
||||
intrinsic("select_vertex_poly", src_comp=[1], indices=[STREAM_ID])
|
||||
|
||||
|
|
|
|||
|
|
@ -459,6 +459,8 @@ gl_system_value_name(gl_system_value sysval)
|
|||
ENUM(SYSTEM_VALUE_CORE_MAX_ID_ARM),
|
||||
ENUM(SYSTEM_VALUE_WARP_ID_ARM),
|
||||
ENUM(SYSTEM_VALUE_WARP_MAX_ID_ARM),
|
||||
ENUM(SYSTEM_VALUE_SAMPLER_HEAP_PTR),
|
||||
ENUM(SYSTEM_VALUE_RESOURCE_HEAP_PTR),
|
||||
};
|
||||
STATIC_ASSERT(ARRAY_SIZE(names) == SYSTEM_VALUE_MAX);
|
||||
return NAME(sysval);
|
||||
|
|
|
|||
|
|
@ -969,6 +969,10 @@ typedef enum
|
|||
SYSTEM_VALUE_WARP_ID_ARM,
|
||||
SYSTEM_VALUE_WARP_MAX_ID_ARM,
|
||||
|
||||
/* SPV_EXT_descriptor_heap */
|
||||
SYSTEM_VALUE_SAMPLER_HEAP_PTR,
|
||||
SYSTEM_VALUE_RESOURCE_HEAP_PTR,
|
||||
|
||||
SYSTEM_VALUE_MAX /**< Number of values */
|
||||
} gl_system_value;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue