mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-01-31 14:52:11 +01:00
[dxbc] Always set geometry shader invocation count
Fixes validation errors when the DXBC shader does not specify the invocation count itself.
This commit is contained in:
parent
144f4badef
commit
6888a98c89
@ -1391,6 +1391,7 @@ namespace dxvk {
|
|||||||
// dcl_gs_instance_count has one operand:
|
// dcl_gs_instance_count has one operand:
|
||||||
// (imm0) Number of geometry shader invocations
|
// (imm0) Number of geometry shader invocations
|
||||||
m_module.setInvocations(m_entryPointId, ins.imm[0].u32);
|
m_module.setInvocations(m_entryPointId, ins.imm[0].u32);
|
||||||
|
m_gs.invocationCount = ins.imm[0].u32;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -6866,6 +6867,9 @@ namespace dxvk {
|
|||||||
|
|
||||||
|
|
||||||
void DxbcCompiler::emitGsFinalize() {
|
void DxbcCompiler::emitGsFinalize() {
|
||||||
|
if (!m_gs.invocationCount)
|
||||||
|
m_module.setInvocations(m_entryPointId, 1);
|
||||||
|
|
||||||
this->emitMainFunctionBegin();
|
this->emitMainFunctionBegin();
|
||||||
this->emitInputSetup(
|
this->emitInputSetup(
|
||||||
primitiveVertexCount(m_gs.inputPrimitive));
|
primitiveVertexCount(m_gs.inputPrimitive));
|
||||||
|
@ -160,6 +160,7 @@ namespace dxvk {
|
|||||||
uint32_t builtinLayer = 0;
|
uint32_t builtinLayer = 0;
|
||||||
uint32_t builtinViewportId = 0;
|
uint32_t builtinViewportId = 0;
|
||||||
uint32_t builtinInvocationId = 0;
|
uint32_t builtinInvocationId = 0;
|
||||||
|
uint32_t invocationCount = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user