mirror of
https://github.com/doitsujin/dxvk.git
synced 2024-12-11 01:24:12 +01:00
[dxbc] Implemented OutputCoverageMask
This commit is contained in:
parent
4ac38af8a7
commit
8c4d94b570
@ -421,6 +421,15 @@ namespace dxvk {
|
|||||||
"vThreadIndexInGroup");
|
"vThreadIndexInGroup");
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
|
case DxbcOperandType::OutputCoverageMask: {
|
||||||
|
m_module.enableCapability(spv::CapabilitySampleRateShading);
|
||||||
|
m_ps.builtinSampleMaskOut = emitNewBuiltinVariable({
|
||||||
|
{ DxbcScalarType::Uint32, 1, 0 },
|
||||||
|
spv::StorageClassOutput },
|
||||||
|
spv::BuiltInSampleMask,
|
||||||
|
"oDepth");
|
||||||
|
} break;
|
||||||
|
|
||||||
case DxbcOperandType::OutputDepth: {
|
case DxbcOperandType::OutputDepth: {
|
||||||
m_module.setExecutionMode(m_entryPointId,
|
m_module.setExecutionMode(m_entryPointId,
|
||||||
spv::ExecutionModeDepthReplacing);
|
spv::ExecutionModeDepthReplacing);
|
||||||
@ -3656,6 +3665,11 @@ namespace dxvk {
|
|||||||
{ DxbcScalarType::Uint32, 1 },
|
{ DxbcScalarType::Uint32, 1 },
|
||||||
m_cs.builtinLocalInvocationIndex };
|
m_cs.builtinLocalInvocationIndex };
|
||||||
|
|
||||||
|
case DxbcOperandType::OutputCoverageMask:
|
||||||
|
return DxbcRegisterPointer {
|
||||||
|
{ DxbcScalarType::Uint32, 1 },
|
||||||
|
m_ps.builtinSampleMaskOut };
|
||||||
|
|
||||||
case DxbcOperandType::OutputDepth:
|
case DxbcOperandType::OutputDepth:
|
||||||
return DxbcRegisterPointer {
|
return DxbcRegisterPointer {
|
||||||
{ DxbcScalarType::Float32, 1 },
|
{ DxbcScalarType::Float32, 1 },
|
||||||
|
@ -125,10 +125,12 @@ namespace dxvk {
|
|||||||
struct DxbcCompilerPsPart {
|
struct DxbcCompilerPsPart {
|
||||||
uint32_t functionId = 0;
|
uint32_t functionId = 0;
|
||||||
|
|
||||||
uint32_t builtinFragCoord = 0;
|
uint32_t builtinFragCoord = 0;
|
||||||
uint32_t builtinDepth = 0;
|
uint32_t builtinDepth = 0;
|
||||||
uint32_t builtinIsFrontFace = 0;
|
uint32_t builtinIsFrontFace = 0;
|
||||||
uint32_t builtinSampleId = 0;
|
uint32_t builtinSampleId = 0;
|
||||||
|
uint32_t builtinSampleMaskIn = 0;
|
||||||
|
uint32_t builtinSampleMaskOut = 0;
|
||||||
|
|
||||||
std::array<DxbcVectorType, DxbcMaxInterfaceRegs> oTypes;
|
std::array<DxbcVectorType, DxbcMaxInterfaceRegs> oTypes;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user