diff --git a/src/d3d8/d3d8_device.cpp b/src/d3d8/d3d8_device.cpp index 90a67fa62..e085974ce 100644 --- a/src/d3d8/d3d8_device.cpp +++ b/src/d3d8/d3d8_device.cpp @@ -1788,8 +1788,8 @@ namespace dxvk { // Validate VS version for non-FF shaders if (pFunction != nullptr) { - const uint32_t majorVersion = (pFunction[0] >> 8) & 0xff; - const uint32_t minorVersion = pFunction[0] & 0xff; + const uint32_t majorVersion = D3DSHADER_VERSION_MAJOR(pFunction[0]); + const uint32_t minorVersion = D3DSHADER_VERSION_MINOR(pFunction[0]); if (unlikely(majorVersion != 1 || minorVersion > 1)) { Logger::err(str::format("D3D8Device::CreateVertexShader: Unsupported VS version ", majorVersion, ".", minorVersion)); @@ -2027,8 +2027,8 @@ namespace dxvk { if (unlikely(pFunction == nullptr || pHandle == nullptr)) return D3DERR_INVALIDCALL; - const uint32_t majorVersion = (pFunction[0] >> 8) & 0xff; - const uint32_t minorVersion = pFunction[0] & 0xff; + const uint32_t majorVersion = D3DSHADER_VERSION_MAJOR(pFunction[0]); + const uint32_t minorVersion = D3DSHADER_VERSION_MINOR(pFunction[0]); if (unlikely(m_isFixedFunctionOnly || majorVersion != 1 || minorVersion > 4)) { Logger::err(str::format("D3D8Device::CreatePixelShader: Unsupported PS version ", majorVersion, ".", minorVersion)); diff --git a/src/d3d8/d3d8_main.cpp b/src/d3d8/d3d8_main.cpp index 86ca6118c..b8eb62e2b 100644 --- a/src/d3d8/d3d8_main.cpp +++ b/src/d3d8/d3d8_main.cpp @@ -26,8 +26,8 @@ extern "C" { if (unlikely(pPixelShader == nullptr)) { errorMessage = "D3D8: ValidatePixelShader: Null pPixelShader"; } else { - const uint32_t majorVersion = (pPixelShader[0] >> 8) & 0xff; - const uint32_t minorVersion = pPixelShader[0] & 0xff; + const uint32_t majorVersion = D3DSHADER_VERSION_MAJOR(pPixelShader[0]); + const uint32_t minorVersion = D3DSHADER_VERSION_MINOR(pPixelShader[0]); if (unlikely(majorVersion != 1 || minorVersion > 4)) { errorMessage = dxvk::str::format("D3D8: ValidatePixelShader: Unsupported PS version ", @@ -69,8 +69,8 @@ extern "C" { if (unlikely(pVertexShader == nullptr)) { errorMessage = "D3D8: ValidateVertexShader: Null pVertexShader"; } else { - const uint32_t majorVersion = (pVertexShader[0] >> 8) & 0xff; - const uint32_t minorVersion = pVertexShader[0] & 0xff; + const uint32_t majorVersion = D3DSHADER_VERSION_MAJOR(pVertexShader[0]); + const uint32_t minorVersion = D3DSHADER_VERSION_MINOR(pVertexShader[0]); if (unlikely(majorVersion != 1 || minorVersion > 1)) { errorMessage = dxvk::str::format("D3D8: ValidateVertexShader: Unsupported VS version ", diff --git a/src/d3d9/d3d9_device.cpp b/src/d3d9/d3d9_device.cpp index e52710311..340f6f39c 100644 --- a/src/d3d9/d3d9_device.cpp +++ b/src/d3d9/d3d9_device.cpp @@ -3314,8 +3314,8 @@ namespace dxvk { if (unlikely(ppShader == nullptr)) return D3DERR_INVALIDCALL; - const uint32_t majorVersion = (pFunction[0] >> 8) & 0xff; - const uint32_t minorVersion = pFunction[0] & 0xff; + const uint32_t majorVersion = D3DSHADER_VERSION_MAJOR(pFunction[0]); + const uint32_t minorVersion = D3DSHADER_VERSION_MINOR(pFunction[0]); // Late fixed-function capable hardware exposed support for VS 1.1 const uint32_t shaderModelVS = m_d3d9Options.shaderModel == 0 ? 1 : m_d3d9Options.shaderModel; @@ -3692,8 +3692,8 @@ namespace dxvk { if (unlikely(ppShader == nullptr)) return D3DERR_INVALIDCALL; - const uint32_t majorVersion = (pFunction[0] >> 8) & 0xff; - const uint32_t minorVersion = pFunction[0] & 0xff; + const uint32_t majorVersion = D3DSHADER_VERSION_MAJOR(pFunction[0]); + const uint32_t minorVersion = D3DSHADER_VERSION_MINOR(pFunction[0]); if (unlikely(majorVersion > m_d3d9Options.shaderModel || (majorVersion == 1 && minorVersion > 4) diff --git a/src/d3d9/d3d9_shader_validator.cpp b/src/d3d9/d3d9_shader_validator.cpp index 9b3175139..22ef78e9e 100644 --- a/src/d3d9/d3d9_shader_validator.cpp +++ b/src/d3d9/d3d9_shader_validator.cpp @@ -156,8 +156,8 @@ namespace dxvk { "IDirect3DShaderValidator9::Instruction: Bad version token. It indicates neither a pixel shader nor a vertex shader."); } - m_majorVersion = (headerToken >> 8) & 0xff; - m_minorVersion = headerToken & 0xff; + m_majorVersion = D3DSHADER_VERSION_MAJOR(headerToken); + m_minorVersion = D3DSHADER_VERSION_MINOR(headerToken); m_ctx = std::make_unique(DxsoProgramInfo{ programType, m_minorVersion, m_majorVersion }); m_state = D3D9ShaderValidatorState::ValidatingInstructions;