mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-15 07:29:17 +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.
|
// and write back the output registers.
|
||||||
switch (m_version.type()) {
|
switch (m_version.type()) {
|
||||||
case DxbcProgramType::VertexShader: this->emitVsFinalize(); break;
|
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::GeometryShader: this->emitGsFinalize(); break;
|
||||||
case DxbcProgramType::PixelShader: this->emitPsFinalize(); break;
|
case DxbcProgramType::PixelShader: this->emitPsFinalize(); break;
|
||||||
case DxbcProgramType::ComputeShader: this->emitCsFinalize(); break;
|
case DxbcProgramType::ComputeShader: this->emitCsFinalize(); break;
|
||||||
default: throw DxvkError("DxbcCompiler: Unsupported program type");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// End main function
|
// End main function
|
||||||
@ -4769,10 +4770,11 @@ namespace dxvk {
|
|||||||
// etc. Each shader type has its own peculiarities.
|
// etc. Each shader type has its own peculiarities.
|
||||||
switch (m_version.type()) {
|
switch (m_version.type()) {
|
||||||
case DxbcProgramType::VertexShader: emitVsInit(); break;
|
case DxbcProgramType::VertexShader: emitVsInit(); break;
|
||||||
|
case DxbcProgramType::HullShader: emitHsInit(); break;
|
||||||
|
case DxbcProgramType::DomainShader: emitDsInit(); break;
|
||||||
case DxbcProgramType::GeometryShader: emitGsInit(); break;
|
case DxbcProgramType::GeometryShader: emitGsInit(); break;
|
||||||
case DxbcProgramType::PixelShader: emitPsInit(); break;
|
case DxbcProgramType::PixelShader: emitPsInit(); break;
|
||||||
case DxbcProgramType::ComputeShader: emitCsInit(); 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() {
|
void DxbcCompiler::emitGsInit() {
|
||||||
m_module.enableCapability(spv::CapabilityGeometry);
|
m_module.enableCapability(spv::CapabilityGeometry);
|
||||||
m_module.enableCapability(spv::CapabilityClipDistance);
|
m_module.enableCapability(spv::CapabilityClipDistance);
|
||||||
@ -4915,6 +4935,16 @@ namespace dxvk {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DxbcCompiler::emitHsFinalize() {
|
||||||
|
// TODO implement
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DxbcCompiler::emitDsFinalize() {
|
||||||
|
// TODO implement
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void DxbcCompiler::emitGsFinalize() {
|
void DxbcCompiler::emitGsFinalize() {
|
||||||
this->emitInputSetup(
|
this->emitInputSetup(
|
||||||
primitiveVertexCount(m_gs.inputPrimitive));
|
primitiveVertexCount(m_gs.inputPrimitive));
|
||||||
|
@ -810,6 +810,7 @@ namespace dxvk {
|
|||||||
|
|
||||||
void emitVsInit();
|
void emitVsInit();
|
||||||
void emitHsInit();
|
void emitHsInit();
|
||||||
|
void emitDsInit();
|
||||||
void emitGsInit();
|
void emitGsInit();
|
||||||
void emitPsInit();
|
void emitPsInit();
|
||||||
void emitCsInit();
|
void emitCsInit();
|
||||||
@ -818,6 +819,7 @@ namespace dxvk {
|
|||||||
// Shader finalization methods
|
// Shader finalization methods
|
||||||
void emitVsFinalize();
|
void emitVsFinalize();
|
||||||
void emitHsFinalize();
|
void emitHsFinalize();
|
||||||
|
void emitDsFinalize();
|
||||||
void emitGsFinalize();
|
void emitGsFinalize();
|
||||||
void emitPsFinalize();
|
void emitPsFinalize();
|
||||||
void emitCsFinalize();
|
void emitCsFinalize();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user