graphics: fix vertex and instance IDs for unpatched indirect draws

This commit is contained in:
nmzik committed 2026-10-28 04:33:03 +01:00
1 parent 1be1c6c4f9
commit a833e1b735
10 files changed
+72 -46

No files matched your search

+5 -4
View File
@@ -125,8 +125,7 @@ struct ShaderTessellationInputInfo {
};
// GS user-data slots an indirect draw packet writes its record's base vertex and first instance
// to. Like the hardware index VGPRs, the vertex shader's indices exclude both bases once either
// slot is set.
// to. A packet can leave both slots unused even when its record contains nonzero offsets.
struct ShaderIndirectOffsets {
static constexpr uint8_t None = UINT8_MAX;
@@ -159,8 +158,10 @@ struct ShaderVertexInputInfo {
ShaderMeshInputInfo mesh;
ShaderTessellationInputInfo tess;
ShaderIndirectOffsets indirect_offsets;
bool fetch_external = false;
bool fetch_embedded = false;
// GPU-read records add Vulkan bases even when the packet patches no user SGPRs.
bool indirect_draw = false;
// Attribute-table metadata enables dynamic fetch detection; loads are matched later.
bool has_dynamic_vertex_fetch = false;
};
struct ShaderComputeInputInfo: ShaderWorkgroupInputInfo {