1
0
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:
Philip Rebohle 2018-03-01 07:00:54 +01:00
parent bdfbd3e81c
commit d0db88ee62
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
2 changed files with 34 additions and 2 deletions

View File

@ -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));

View File

@ -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();