mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 22:49:13 +02:00
nir: Add load_sysval_agx intrinsic
For merging shader stages, it will be useful to express a load from an explicit GL "descriptor set", so we can represent things like UBO loads with merged shaders where UBOs can come from either stage. To do so, we add an intrinsic representing a load from the driver's uniform tables, indexed like "descriptor sets" with "bindings". In principle, a layered GL-on-Vulkan implementation would use literal descriptor sets for each stage, so I feel comfortable with the analogy here. Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24847>
This commit is contained in:
parent
bda4eb18dd
commit
ec2ab7d771
1 changed files with 5 additions and 0 deletions
|
|
@ -1744,6 +1744,11 @@ intrinsic("load_ubo_base_agx", src_comp=[1], dest_comp=1, bit_sizes=[64],
|
|||
intrinsic("load_vbo_base_agx", src_comp=[1], dest_comp=1, bit_sizes=[64],
|
||||
flags=[CAN_ELIMINATE, CAN_REORDER])
|
||||
|
||||
# Load a driver-internal system value from a given system value set at a given
|
||||
# binding within the set. This is used for correctness when lowering things like
|
||||
# UBOs with merged shaders.
|
||||
load("sysval_agx", [], [DESC_SET, BINDING], [CAN_REORDER, CAN_ELIMINATE])
|
||||
|
||||
# Write out a sample mask for a targeted subset of samples, specified in the two
|
||||
# masks. Maps to the corresponding AGX instruction, the actual workings are
|
||||
# documented elsewhere as they are too complicated for this comment.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue