mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-14 04:29:15 +01:00
[dxbc] Implemnted some HS/DS stubs
This commit is contained in:
parent
bdfbd3e81c
commit
d0db88ee62
@ -162,10 +162,11 @@ namespace dxvk {
|
||||
// and write back the output registers.
|
||||
switch (m_version.type()) {
|
||||
case DxbcProgramType::VertexShader: this->emitVsFinalize(); break;
|
||||
case DxbcProgramType::HullShader: this->emitHsFinalize(); break;
|
||||
case DxbcProgramType::DomainShader: this->emitDsFinalize(); break;
|
||||
case DxbcProgramType::GeometryShader: this->emitGsFinalize(); break;
|
||||
case DxbcProgramType::PixelShader: this->emitPsFinalize(); break;
|
||||
case DxbcProgramType::ComputeShader: this->emitCsFinalize(); break;
|
||||
default: throw DxvkError("DxbcCompiler: Unsupported program type");
|
||||
}
|
||||
|
||||
// End main function
|
||||
@ -4769,10 +4770,11 @@ namespace dxvk {
|
||||
// etc. Each shader type has its own peculiarities.
|
||||
switch (m_version.type()) {
|
||||
case DxbcProgramType::VertexShader: emitVsInit(); break;
|
||||
case DxbcProgramType::HullShader: emitHsInit(); break;
|
||||
case DxbcProgramType::DomainShader: emitDsInit(); break;
|
||||
case DxbcProgramType::GeometryShader: emitGsInit(); break;
|
||||
case DxbcProgramType::PixelShader: emitPsInit(); break;
|
||||
case DxbcProgramType::ComputeShader: emitCsInit(); break;
|
||||
default: throw DxvkError("DxbcCompiler: Unsupported program type");
|
||||
}
|
||||
}
|
||||
|
||||
@ -4812,6 +4814,24 @@ namespace dxvk {
|
||||
}
|
||||
|
||||
|
||||
void DxbcCompiler::emitHsInit() {
|
||||
m_module.enableCapability(spv::CapabilityTessellation);
|
||||
m_module.enableCapability(spv::CapabilityClipDistance);
|
||||
m_module.enableCapability(spv::CapabilityCullDistance);
|
||||
|
||||
// TODO implement
|
||||
}
|
||||
|
||||
|
||||
void DxbcCompiler::emitDsInit() {
|
||||
m_module.enableCapability(spv::CapabilityTessellation);
|
||||
m_module.enableCapability(spv::CapabilityClipDistance);
|
||||
m_module.enableCapability(spv::CapabilityCullDistance);
|
||||
|
||||
// TODO implement
|
||||
}
|
||||
|
||||
|
||||
void DxbcCompiler::emitGsInit() {
|
||||
m_module.enableCapability(spv::CapabilityGeometry);
|
||||
m_module.enableCapability(spv::CapabilityClipDistance);
|
||||
@ -4915,6 +4935,16 @@ namespace dxvk {
|
||||
}
|
||||
|
||||
|
||||
void DxbcCompiler::emitHsFinalize() {
|
||||
// TODO implement
|
||||
}
|
||||
|
||||
|
||||
void DxbcCompiler::emitDsFinalize() {
|
||||
// TODO implement
|
||||
}
|
||||
|
||||
|
||||
void DxbcCompiler::emitGsFinalize() {
|
||||
this->emitInputSetup(
|
||||
primitiveVertexCount(m_gs.inputPrimitive));
|
||||
|
@ -810,6 +810,7 @@ namespace dxvk {
|
||||
|
||||
void emitVsInit();
|
||||
void emitHsInit();
|
||||
void emitDsInit();
|
||||
void emitGsInit();
|
||||
void emitPsInit();
|
||||
void emitCsInit();
|
||||
@ -818,6 +819,7 @@ namespace dxvk {
|
||||
// Shader finalization methods
|
||||
void emitVsFinalize();
|
||||
void emitHsFinalize();
|
||||
void emitDsFinalize();
|
||||
void emitGsFinalize();
|
||||
void emitPsFinalize();
|
||||
void emitCsFinalize();
|
||||
|
Loading…
x
Reference in New Issue
Block a user