From 8fcdf78b51f4147965df9fb7991adfd3cc8da13c Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Mon, 8 Oct 2018 09:34:56 +0200 Subject: [PATCH] [dxbc] rename DxbcProgramVersion to DxbcProgramInfo The version in not part of this class anymore. --- src/dxbc/dxbc_analysis.cpp | 4 +-- src/dxbc/dxbc_analysis.h | 4 +-- src/dxbc/dxbc_chunk_shex.cpp | 2 +- src/dxbc/dxbc_chunk_shex.h | 8 ++--- src/dxbc/dxbc_common.cpp | 8 ++--- src/dxbc/dxbc_common.h | 6 ++-- src/dxbc/dxbc_compiler.cpp | 64 ++++++++++++++++++------------------ src/dxbc/dxbc_compiler.h | 6 ++-- src/dxbc/dxbc_module.cpp | 6 ++-- src/dxbc/dxbc_module.h | 6 ++-- 10 files changed, 57 insertions(+), 57 deletions(-) diff --git a/src/dxbc/dxbc_analysis.cpp b/src/dxbc/dxbc_analysis.cpp index dcbfdd1eb..b3444872e 100644 --- a/src/dxbc/dxbc_analysis.cpp +++ b/src/dxbc/dxbc_analysis.cpp @@ -4,7 +4,7 @@ namespace dxvk { DxbcAnalyzer::DxbcAnalyzer( const DxbcModuleInfo& moduleInfo, - const DxbcProgramVersion& version, + const DxbcProgramInfo& programInfo, const Rc& isgn, const Rc& osgn, DxbcAnalysisInfo& analysis) @@ -73,4 +73,4 @@ namespace dxvk { return result; } -} \ No newline at end of file +} diff --git a/src/dxbc/dxbc_analysis.h b/src/dxbc/dxbc_analysis.h index 1b37fcdd8..f583a2a1d 100644 --- a/src/dxbc/dxbc_analysis.h +++ b/src/dxbc/dxbc_analysis.h @@ -55,7 +55,7 @@ namespace dxvk { DxbcAnalyzer( const DxbcModuleInfo& moduleInfo, - const DxbcProgramVersion& version, + const DxbcProgramInfo& programInfo, const Rc& isgn, const Rc& osgn, DxbcAnalysisInfo& analysis); @@ -81,4 +81,4 @@ namespace dxvk { }; -} \ No newline at end of file +} diff --git a/src/dxbc/dxbc_chunk_shex.cpp b/src/dxbc/dxbc_chunk_shex.cpp index 9e68f24ae..552329b88 100644 --- a/src/dxbc/dxbc_chunk_shex.cpp +++ b/src/dxbc/dxbc_chunk_shex.cpp @@ -8,7 +8,7 @@ namespace dxvk { // numbers, and the high word contains the program type. reader.skip(2); auto pType = reader.readEnum(); - m_version = DxbcProgramVersion(pType); + m_programInfo = DxbcProgramInfo(pType); // Read the actual shader code as an array of DWORDs. auto codeLength = reader.readu32() - 2; diff --git a/src/dxbc/dxbc_chunk_shex.h b/src/dxbc/dxbc_chunk_shex.h index d48e0d9f8..8deecc867 100644 --- a/src/dxbc/dxbc_chunk_shex.h +++ b/src/dxbc/dxbc_chunk_shex.h @@ -20,8 +20,8 @@ namespace dxvk { DxbcShex(DxbcReader reader); ~DxbcShex(); - DxbcProgramVersion version() const { - return m_version; + DxbcProgramInfo programInfo() const { + return m_programInfo; } DxbcCodeSlice slice() const { @@ -31,9 +31,9 @@ namespace dxvk { private: - DxbcProgramVersion m_version; + DxbcProgramInfo m_programInfo; std::vector m_code; }; -} \ No newline at end of file +} diff --git a/src/dxbc/dxbc_common.cpp b/src/dxbc/dxbc_common.cpp index ccc3e1ea2..d150c585b 100644 --- a/src/dxbc/dxbc_common.cpp +++ b/src/dxbc/dxbc_common.cpp @@ -2,7 +2,7 @@ namespace dxvk { - VkShaderStageFlagBits DxbcProgramVersion::shaderStage() const { + VkShaderStageFlagBits DxbcProgramInfo::shaderStage() const { switch (m_type) { case DxbcProgramType::PixelShader : return VK_SHADER_STAGE_FRAGMENT_BIT; case DxbcProgramType::VertexShader : return VK_SHADER_STAGE_VERTEX_BIT; @@ -12,11 +12,11 @@ namespace dxvk { case DxbcProgramType::ComputeShader : return VK_SHADER_STAGE_COMPUTE_BIT; } - throw DxvkError("DxbcProgramVersion::shaderStage: Unsupported program type"); + throw DxvkError("DxbcProgramInfo::shaderStage: Unsupported program type"); } - spv::ExecutionModel DxbcProgramVersion::executionModel() const { + spv::ExecutionModel DxbcProgramInfo::executionModel() const { switch (m_type) { case DxbcProgramType::PixelShader : return spv::ExecutionModelFragment; case DxbcProgramType::VertexShader : return spv::ExecutionModelVertex; @@ -26,7 +26,7 @@ namespace dxvk { case DxbcProgramType::ComputeShader : return spv::ExecutionModelGLCompute; } - throw DxvkError("DxbcProgramVersion::executionModel: Unsupported program type"); + throw DxvkError("DxbcProgramInfo::executionModel: Unsupported program type"); } } \ No newline at end of file diff --git a/src/dxbc/dxbc_common.h b/src/dxbc/dxbc_common.h index 294065e38..9c490d62c 100644 --- a/src/dxbc/dxbc_common.h +++ b/src/dxbc/dxbc_common.h @@ -25,12 +25,12 @@ namespace dxvk { * * Stores the shader program type. */ - class DxbcProgramVersion { + class DxbcProgramInfo { public: - DxbcProgramVersion() { } - DxbcProgramVersion(DxbcProgramType type) + DxbcProgramInfo() { } + DxbcProgramInfo(DxbcProgramType type) : m_type(type) { } /** diff --git a/src/dxbc/dxbc_compiler.cpp b/src/dxbc/dxbc_compiler.cpp index 2c1005df5..88d6b91c6 100644 --- a/src/dxbc/dxbc_compiler.cpp +++ b/src/dxbc/dxbc_compiler.cpp @@ -12,15 +12,15 @@ namespace dxvk { DxbcCompiler::DxbcCompiler( const std::string& fileName, const DxbcModuleInfo& moduleInfo, - const DxbcProgramVersion& version, + const DxbcProgramInfo& programInfo, const Rc& isgn, const Rc& osgn, const DxbcAnalysisInfo& analysis) - : m_moduleInfo(moduleInfo), - m_version (version), - m_isgn (isgn), - m_osgn (osgn), - m_analysis (&analysis) { + : m_moduleInfo (moduleInfo), + m_programInfo(programInfo), + m_isgn (isgn), + m_osgn (osgn), + m_analysis (&analysis) { // Declare an entry point ID. We'll need it during the // initialization phase where the execution mode is set. m_entryPointId = m_module.allocateId(); @@ -183,7 +183,7 @@ namespace dxvk { // Depending on the shader type, this will prepare // input registers, call various shader functions // and write back the output registers. - switch (m_version.type()) { + switch (m_programInfo.type()) { case DxbcProgramType::VertexShader: this->emitVsFinalize(); break; case DxbcProgramType::HullShader: this->emitHsFinalize(); break; case DxbcProgramType::DomainShader: this->emitDsFinalize(); break; @@ -195,14 +195,14 @@ namespace dxvk { // Declare the entry point, we now have all the // information we need, including the interfaces m_module.addEntryPoint(m_entryPointId, - m_version.executionModel(), "main", + m_programInfo.executionModel(), "main", m_entryPointInterfaces.size(), m_entryPointInterfaces.data()); m_module.setDebugName(m_entryPointId, "main"); // Create the shader module object return new DxvkShader( - m_version.shaderStage(), + m_programInfo.shaderStage(), m_resourceSlots.size(), m_resourceSlots.data(), m_interfaceSlots, @@ -359,7 +359,7 @@ namespace dxvk { void DxbcCompiler::emitDclInterfaceReg(const DxbcShaderInstruction& ins) { switch (ins.dst[0].type) { case DxbcOperandType::InputControlPoint: - if (m_version.type() != DxbcProgramType::HullShader) + if (m_programInfo.type() != DxbcProgramType::HullShader) break; /* fall through */ @@ -652,7 +652,7 @@ namespace dxvk { && sv != DxbcSystemValue::CullDistance) m_oMappings.push_back({ regIdx, regMask, sv }); - if (m_version.type() == DxbcProgramType::HullShader) { + if (m_programInfo.type() == DxbcProgramType::HullShader) { // Hull shaders don't use standard outputs if (getCurrentHsForkJoinPhase() != nullptr) m_hs.outputPerPatchMask |= 1 << regIdx; @@ -725,7 +725,7 @@ namespace dxvk { // Compute the DXVK binding slot index for the buffer. // D3D11 needs to bind the actual buffers to this slot. const uint32_t bindingId = computeResourceSlotId( - m_version.type(), DxbcBindingType::ConstantBuffer, + m_programInfo.type(), DxbcBindingType::ConstantBuffer, regIdx); m_module.decorateDescriptorSet(varId, 0); @@ -775,7 +775,7 @@ namespace dxvk { // Compute binding slot index for the sampler const uint32_t bindingId = computeResourceSlotId( - m_version.type(), DxbcBindingType::ImageSampler, samplerId); + m_programInfo.type(), DxbcBindingType::ImageSampler, samplerId); m_module.decorateDescriptorSet(varId, 0); m_module.decorateBinding(varId, bindingId); @@ -891,7 +891,7 @@ namespace dxvk { // Compute the DXVK binding slot index for the resource. // D3D11 needs to bind the actual resource to this slot. const uint32_t bindingId = computeResourceSlotId( - m_version.type(), isUav + m_programInfo.type(), isUav ? DxbcBindingType::UnorderedAccessView : DxbcBindingType::ShaderResource, registerId); @@ -1018,7 +1018,7 @@ namespace dxvk { // Compute the DXVK binding slot index for the resource. const uint32_t bindingId = computeResourceSlotId( - m_version.type(), isUav + m_programInfo.type(), isUav ? DxbcBindingType::UnorderedAccessView : DxbcBindingType::ShaderResource, registerId); @@ -1167,7 +1167,7 @@ namespace dxvk { void DxbcCompiler::emitDclInputControlPointCount(const DxbcShaderInstruction& ins) { // dcl_input_control_points has the control point // count embedded within the opcode token. - if (m_version.type() == DxbcProgramType::HullShader) { + if (m_programInfo.type() == DxbcProgramType::HullShader) { m_hs.vertexCountIn = ins.controls.controlPointCount(); emitDclInputArray(m_hs.vertexCountIn); @@ -1291,7 +1291,7 @@ namespace dxvk { str::format("u", regId, "_meta").c_str()); const uint32_t bindingId = computeResourceSlotId( - m_version.type(), DxbcBindingType::UavCounter, + m_programInfo.type(), DxbcBindingType::UavCounter, regId); m_module.decorateDescriptorSet(varId, 0); @@ -4312,11 +4312,11 @@ namespace dxvk { const InputArray array = [&] () -> InputArray { switch (operand.type) { case DxbcOperandType::InputControlPoint: - return m_version.type() == DxbcProgramType::HullShader + return m_programInfo.type() == DxbcProgramType::HullShader ? InputArray { m_vArray, spv::StorageClassPrivate } : InputArray { m_ds.inputPerVertex, spv::StorageClassInput }; case DxbcOperandType::InputPatchConstant: - return m_version.type() == DxbcProgramType::HullShader + return m_programInfo.type() == DxbcProgramType::HullShader ? InputArray { m_hs.outputPerPatch, spv::StorageClassPrivate } : InputArray { m_ds.inputPerPatch, spv::StorageClassInput }; case DxbcOperandType::OutputControlPoint: @@ -4342,7 +4342,7 @@ namespace dxvk { DxbcRegisterPointer DxbcCompiler::emitGetOutputPtr( const DxbcRegister& operand) { - if (m_version.type() == DxbcProgramType::HullShader) { + if (m_programInfo.type() == DxbcProgramType::HullShader) { // Hull shaders are special in that they have two sets of // output registers, one for per-patch values and one for // per-vertex values. @@ -5136,10 +5136,10 @@ namespace dxvk { const uint32_t registerId = m_module.consti32(map.regId); const DxbcRegisterValue value = [&] { - switch (m_version.type()) { + switch (m_programInfo.type()) { case DxbcProgramType::VertexShader: return emitVsSystemValueLoad(map.sv, map.regMask); case DxbcProgramType::PixelShader: return emitPsSystemValueLoad(map.sv, map.regMask); - default: throw DxvkError(str::format("DxbcCompiler: Unexpected stage: ", m_version.type())); + default: throw DxvkError(str::format("DxbcCompiler: Unexpected stage: ", m_programInfo.type())); } }(); @@ -5193,9 +5193,9 @@ namespace dxvk { for (uint32_t v = 0; v < vertexCount; v++) { const DxbcRegisterValue value = [&] { - switch (m_version.type()) { + switch (m_programInfo.type()) { case DxbcProgramType::GeometryShader: return emitGsSystemValueLoad(map.sv, map.regMask, v); - default: throw DxvkError(str::format("DxbcCompiler: Unexpected stage: ", m_version.type())); + default: throw DxvkError(str::format("DxbcCompiler: Unexpected stage: ", m_programInfo.type())); } }(); @@ -5218,7 +5218,7 @@ namespace dxvk { for (const DxbcSvMapping& svMapping : m_oMappings) { DxbcRegisterPointer outputReg = m_oRegs.at(svMapping.regId); - if (m_version.type() == DxbcProgramType::HullShader) { + if (m_programInfo.type() == DxbcProgramType::HullShader) { uint32_t registerIndex = m_module.constu32(svMapping.regId); outputReg.type = { DxbcScalarType::Float32, 4 }; @@ -5234,7 +5234,7 @@ namespace dxvk { auto mask = svMapping.regMask; auto value = emitValueLoad(outputReg); - switch (m_version.type()) { + switch (m_programInfo.type()) { case DxbcProgramType::VertexShader: emitVsSystemValueStore(sv, mask, value); break; case DxbcProgramType::GeometryShader: emitGsSystemValueStore(sv, mask, value); break; case DxbcProgramType::HullShader: emitHsSystemValueStore(sv, mask, value); break; @@ -5543,7 +5543,7 @@ namespace dxvk { } break; case DxbcSystemValue::RenderTargetId: { - if (m_version.type() != DxbcProgramType::GeometryShader) + if (m_programInfo.type() != DxbcProgramType::GeometryShader) enableShaderViewportIndexLayer(); if (m_gs.builtinLayer == 0) { @@ -5566,7 +5566,7 @@ namespace dxvk { } break; case DxbcSystemValue::ViewportId: { - if (m_version.type() != DxbcProgramType::GeometryShader) + if (m_programInfo.type() != DxbcProgramType::GeometryShader) enableShaderViewportIndexLayer(); if (m_gs.builtinViewportId == 0) { @@ -5844,7 +5844,7 @@ namespace dxvk { // Initialize the shader module with capabilities // etc. Each shader type has its own peculiarities. - switch (m_version.type()) { + switch (m_programInfo.type()) { case DxbcProgramType::VertexShader: emitVsInit(); break; case DxbcProgramType::HullShader: emitHsInit(); break; case DxbcProgramType::DomainShader: emitDsInit(); break; @@ -6714,7 +6714,7 @@ namespace dxvk { DxbcVectorType DxbcCompiler::getInputRegType(uint32_t regIdx) const { - switch (m_version.type()) { + switch (m_programInfo.type()) { case DxbcProgramType::VertexShader: { const DxbcSgnEntry* entry = m_isgn->findByRegister(regIdx); @@ -6748,7 +6748,7 @@ namespace dxvk { DxbcVectorType DxbcCompiler::getOutputRegType(uint32_t regIdx) const { - switch (m_version.type()) { + switch (m_programInfo.type()) { case DxbcProgramType::PixelShader: { const DxbcSgnEntry* entry = m_osgn->findByRegister(regIdx); @@ -6909,4 +6909,4 @@ namespace dxvk { } } -} \ No newline at end of file +} diff --git a/src/dxbc/dxbc_compiler.h b/src/dxbc/dxbc_compiler.h index 98ff8cab0..20323335f 100644 --- a/src/dxbc/dxbc_compiler.h +++ b/src/dxbc/dxbc_compiler.h @@ -358,7 +358,7 @@ namespace dxvk { DxbcCompiler( const std::string& fileName, const DxbcModuleInfo& moduleInfo, - const DxbcProgramVersion& version, + const DxbcProgramInfo& programInfo, const Rc& isgn, const Rc& osgn, const DxbcAnalysisInfo& analysis); @@ -380,7 +380,7 @@ namespace dxvk { private: DxbcModuleInfo m_moduleInfo; - DxbcProgramVersion m_version; + DxbcProgramInfo m_programInfo; SpirvModule m_module; Rc m_isgn; @@ -1167,4 +1167,4 @@ namespace dxvk { }; -} \ No newline at end of file +} diff --git a/src/dxbc/dxbc_module.cpp b/src/dxbc/dxbc_module.cpp index 5b0824d14..5463cf9ad 100644 --- a/src/dxbc/dxbc_module.cpp +++ b/src/dxbc/dxbc_module.cpp @@ -46,7 +46,7 @@ namespace dxvk { DxbcAnalysisInfo analysisInfo; DxbcAnalyzer analyzer(moduleInfo, - m_shexChunk->version(), + m_shexChunk->programInfo(), m_isgnChunk, m_osgnChunk, analysisInfo); @@ -54,7 +54,7 @@ namespace dxvk { DxbcCompiler compiler( fileName, moduleInfo, - m_shexChunk->version(), + m_shexChunk->programInfo(), m_isgnChunk, m_osgnChunk, analysisInfo); @@ -91,4 +91,4 @@ namespace dxvk { } } -} \ No newline at end of file +} diff --git a/src/dxbc/dxbc_module.h b/src/dxbc/dxbc_module.h index 6b677217d..fc420e70a 100644 --- a/src/dxbc/dxbc_module.h +++ b/src/dxbc/dxbc_module.h @@ -35,8 +35,8 @@ namespace dxvk { * \brief Shader type * \returns Shader type */ - DxbcProgramVersion version() const { - return m_shexChunk->version(); + DxbcProgramInfo programInfo() const { + return m_shexChunk->programInfo(); } /** @@ -78,4 +78,4 @@ namespace dxvk { }; -} \ No newline at end of file +}