1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2024-12-11 19:24:11 +01:00

[d3d11] Reduced log spamming, improved parameter naming consistency

This commit is contained in:
Philip Rebohle 2018-01-16 20:10:49 +01:00
parent 052f231295
commit 4c8c23eea1
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
5 changed files with 43 additions and 40 deletions

View File

@ -76,24 +76,24 @@ namespace dxvk {
DxvkBlendMode D3D11BlendState::DecodeBlendMode( DxvkBlendMode D3D11BlendState::DecodeBlendMode(
const D3D11_RENDER_TARGET_BLEND_DESC& blendDesc) { const D3D11_RENDER_TARGET_BLEND_DESC& BlendDesc) {
DxvkBlendMode mode; DxvkBlendMode mode;
mode.enableBlending = blendDesc.BlendEnable; mode.enableBlending = BlendDesc.BlendEnable;
mode.colorSrcFactor = DecodeBlendFactor(blendDesc.SrcBlend, false); mode.colorSrcFactor = DecodeBlendFactor(BlendDesc.SrcBlend, false);
mode.colorDstFactor = DecodeBlendFactor(blendDesc.DestBlend, false); mode.colorDstFactor = DecodeBlendFactor(BlendDesc.DestBlend, false);
mode.colorBlendOp = DecodeBlendOp(blendDesc.BlendOp); mode.colorBlendOp = DecodeBlendOp(BlendDesc.BlendOp);
mode.alphaSrcFactor = DecodeBlendFactor(blendDesc.SrcBlendAlpha, true); mode.alphaSrcFactor = DecodeBlendFactor(BlendDesc.SrcBlendAlpha, true);
mode.alphaDstFactor = DecodeBlendFactor(blendDesc.DestBlendAlpha, true); mode.alphaDstFactor = DecodeBlendFactor(BlendDesc.DestBlendAlpha, true);
mode.alphaBlendOp = DecodeBlendOp(blendDesc.BlendOpAlpha); mode.alphaBlendOp = DecodeBlendOp(BlendDesc.BlendOpAlpha);
// TODO find out if D3D11 wants us to apply the write mask if blending // TODO find out if D3D11 wants us to apply the write mask if blending
// is disabled as well. This is standard behaviour in Vulkan. // is disabled as well. This is standard behaviour in Vulkan.
mode.writeMask = blendDesc.RenderTargetWriteMask; mode.writeMask = BlendDesc.RenderTargetWriteMask;
return mode; return mode;
} }
VkBlendFactor D3D11BlendState::DecodeBlendFactor(D3D11_BLEND blendFactor, bool isAlpha) { VkBlendFactor D3D11BlendState::DecodeBlendFactor(D3D11_BLEND BlendFactor, bool IsAlpha) {
switch (blendFactor) { switch (BlendFactor) {
case D3D11_BLEND_ZERO: return VK_BLEND_FACTOR_ZERO; case D3D11_BLEND_ZERO: return VK_BLEND_FACTOR_ZERO;
case D3D11_BLEND_ONE: return VK_BLEND_FACTOR_ONE; case D3D11_BLEND_ONE: return VK_BLEND_FACTOR_ONE;
case D3D11_BLEND_SRC_COLOR: return VK_BLEND_FACTOR_SRC_COLOR; case D3D11_BLEND_SRC_COLOR: return VK_BLEND_FACTOR_SRC_COLOR;
@ -105,21 +105,22 @@ namespace dxvk {
case D3D11_BLEND_DEST_COLOR: return VK_BLEND_FACTOR_DST_COLOR; case D3D11_BLEND_DEST_COLOR: return VK_BLEND_FACTOR_DST_COLOR;
case D3D11_BLEND_INV_DEST_COLOR: return VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR; case D3D11_BLEND_INV_DEST_COLOR: return VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR;
case D3D11_BLEND_SRC_ALPHA_SAT: return VK_BLEND_FACTOR_SRC_ALPHA_SATURATE; case D3D11_BLEND_SRC_ALPHA_SAT: return VK_BLEND_FACTOR_SRC_ALPHA_SATURATE;
case D3D11_BLEND_BLEND_FACTOR: return isAlpha ? VK_BLEND_FACTOR_CONSTANT_ALPHA : VK_BLEND_FACTOR_CONSTANT_COLOR; case D3D11_BLEND_BLEND_FACTOR: return IsAlpha ? VK_BLEND_FACTOR_CONSTANT_ALPHA : VK_BLEND_FACTOR_CONSTANT_COLOR;
case D3D11_BLEND_INV_BLEND_FACTOR: return isAlpha ? VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA : VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR; case D3D11_BLEND_INV_BLEND_FACTOR: return IsAlpha ? VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA : VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR;
case D3D11_BLEND_SRC1_COLOR: return VK_BLEND_FACTOR_SRC1_COLOR; case D3D11_BLEND_SRC1_COLOR: return VK_BLEND_FACTOR_SRC1_COLOR;
case D3D11_BLEND_INV_SRC1_COLOR: return VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR; case D3D11_BLEND_INV_SRC1_COLOR: return VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR;
case D3D11_BLEND_SRC1_ALPHA: return VK_BLEND_FACTOR_SRC1_ALPHA; case D3D11_BLEND_SRC1_ALPHA: return VK_BLEND_FACTOR_SRC1_ALPHA;
case D3D11_BLEND_INV_SRC1_ALPHA: return VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA; case D3D11_BLEND_INV_SRC1_ALPHA: return VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA;
} }
Logger::err(str::format("D3D11: Invalid blend factor: ", blendFactor)); if (BlendFactor != 0) // prevent log spamming when apps use ZeroMemory
Logger::err(str::format("D3D11: Invalid blend factor: ", BlendFactor));
return VK_BLEND_FACTOR_ZERO; return VK_BLEND_FACTOR_ZERO;
} }
VkBlendOp D3D11BlendState::DecodeBlendOp(D3D11_BLEND_OP blendOp) { VkBlendOp D3D11BlendState::DecodeBlendOp(D3D11_BLEND_OP BlendOp) {
switch (blendOp) { switch (BlendOp) {
case D3D11_BLEND_OP_ADD: return VK_BLEND_OP_ADD; case D3D11_BLEND_OP_ADD: return VK_BLEND_OP_ADD;
case D3D11_BLEND_OP_SUBTRACT: return VK_BLEND_OP_SUBTRACT; case D3D11_BLEND_OP_SUBTRACT: return VK_BLEND_OP_SUBTRACT;
case D3D11_BLEND_OP_REV_SUBTRACT: return VK_BLEND_OP_REVERSE_SUBTRACT; case D3D11_BLEND_OP_REV_SUBTRACT: return VK_BLEND_OP_REVERSE_SUBTRACT;
@ -127,7 +128,8 @@ namespace dxvk {
case D3D11_BLEND_OP_MAX: return VK_BLEND_OP_MAX; case D3D11_BLEND_OP_MAX: return VK_BLEND_OP_MAX;
} }
Logger::err(str::format("D3D11: Invalid blend op: ", blendOp)); if (BlendOp != 0) // prevent log spamming when apps use ZeroMemory
Logger::err(str::format("D3D11: Invalid blend op: ", BlendOp));
return VK_BLEND_OP_ADD; return VK_BLEND_OP_ADD;
} }

View File

@ -44,14 +44,14 @@ namespace dxvk {
DxvkLogicOpState m_loState; DxvkLogicOpState m_loState;
static DxvkBlendMode DecodeBlendMode( static DxvkBlendMode DecodeBlendMode(
const D3D11_RENDER_TARGET_BLEND_DESC& blendDesc); const D3D11_RENDER_TARGET_BLEND_DESC& BlendDesc);
static VkBlendFactor DecodeBlendFactor( static VkBlendFactor DecodeBlendFactor(
D3D11_BLEND blendFactor, D3D11_BLEND BlendFactor,
bool isAlpha); bool IsAlpha);
static VkBlendOp DecodeBlendOp( static VkBlendOp DecodeBlendOp(
D3D11_BLEND_OP blendOp); D3D11_BLEND_OP BlendOp);
}; };

View File

@ -54,30 +54,30 @@ namespace dxvk {
VkStencilOpState D3D11DepthStencilState::DecodeStencilOpState( VkStencilOpState D3D11DepthStencilState::DecodeStencilOpState(
const D3D11_DEPTH_STENCILOP_DESC& stencilDesc, const D3D11_DEPTH_STENCILOP_DESC& StencilDesc,
const D3D11_DEPTH_STENCIL_DESC& desc) const { const D3D11_DEPTH_STENCIL_DESC& Desc) const {
VkStencilOpState result; VkStencilOpState result;
result.failOp = VK_STENCIL_OP_KEEP; result.failOp = VK_STENCIL_OP_KEEP;
result.passOp = VK_STENCIL_OP_KEEP; result.passOp = VK_STENCIL_OP_KEEP;
result.depthFailOp = VK_STENCIL_OP_KEEP; result.depthFailOp = VK_STENCIL_OP_KEEP;
result.compareOp = VK_COMPARE_OP_ALWAYS; result.compareOp = VK_COMPARE_OP_ALWAYS;
result.compareMask = desc.StencilReadMask; result.compareMask = Desc.StencilReadMask;
result.writeMask = desc.StencilWriteMask; result.writeMask = Desc.StencilWriteMask;
result.reference = 0; result.reference = 0;
if (desc.StencilEnable) { if (Desc.StencilEnable) {
result.failOp = DecodeStencilOp(stencilDesc.StencilFailOp); result.failOp = DecodeStencilOp(StencilDesc.StencilFailOp);
result.passOp = DecodeStencilOp(stencilDesc.StencilPassOp); result.passOp = DecodeStencilOp(StencilDesc.StencilPassOp);
result.depthFailOp = DecodeStencilOp(stencilDesc.StencilDepthFailOp); result.depthFailOp = DecodeStencilOp(StencilDesc.StencilDepthFailOp);
result.compareOp = DecodeCompareOp(stencilDesc.StencilFunc); result.compareOp = DecodeCompareOp(StencilDesc.StencilFunc);
} }
return result; return result;
} }
VkStencilOp D3D11DepthStencilState::DecodeStencilOp(D3D11_STENCIL_OP op) const { VkStencilOp D3D11DepthStencilState::DecodeStencilOp(D3D11_STENCIL_OP Op) const {
switch (op) { switch (Op) {
case D3D11_STENCIL_OP_KEEP: return VK_STENCIL_OP_KEEP; case D3D11_STENCIL_OP_KEEP: return VK_STENCIL_OP_KEEP;
case D3D11_STENCIL_OP_ZERO: return VK_STENCIL_OP_ZERO; case D3D11_STENCIL_OP_ZERO: return VK_STENCIL_OP_ZERO;
case D3D11_STENCIL_OP_REPLACE: return VK_STENCIL_OP_REPLACE; case D3D11_STENCIL_OP_REPLACE: return VK_STENCIL_OP_REPLACE;
@ -88,7 +88,8 @@ namespace dxvk {
case D3D11_STENCIL_OP_DECR: return VK_STENCIL_OP_DECREMENT_AND_WRAP; case D3D11_STENCIL_OP_DECR: return VK_STENCIL_OP_DECREMENT_AND_WRAP;
} }
Logger::err(str::format("D3D11: Invalid stencil op: ", op)); if (Op != 0)
Logger::err(str::format("D3D11: Invalid stencil op: ", Op));
return VK_STENCIL_OP_KEEP; return VK_STENCIL_OP_KEEP;
} }

View File

@ -40,11 +40,11 @@ namespace dxvk {
DxvkDepthStencilState m_state; DxvkDepthStencilState m_state;
VkStencilOpState DecodeStencilOpState( VkStencilOpState DecodeStencilOpState(
const D3D11_DEPTH_STENCILOP_DESC& stencilDesc, const D3D11_DEPTH_STENCILOP_DESC& StencilDesc,
const D3D11_DEPTH_STENCIL_DESC& desc) const; const D3D11_DEPTH_STENCIL_DESC& Desc) const;
VkStencilOp DecodeStencilOp( VkStencilOp DecodeStencilOp(
D3D11_STENCIL_OP op) const; D3D11_STENCIL_OP Op) const;
}; };

View File

@ -53,11 +53,11 @@ namespace dxvk {
case D3D11_COMPARISON_NOT_EQUAL: return VK_COMPARE_OP_NOT_EQUAL; case D3D11_COMPARISON_NOT_EQUAL: return VK_COMPARE_OP_NOT_EQUAL;
case D3D11_COMPARISON_GREATER_EQUAL: return VK_COMPARE_OP_GREATER_OR_EQUAL; case D3D11_COMPARISON_GREATER_EQUAL: return VK_COMPARE_OP_GREATER_OR_EQUAL;
case D3D11_COMPARISON_ALWAYS: return VK_COMPARE_OP_ALWAYS; case D3D11_COMPARISON_ALWAYS: return VK_COMPARE_OP_ALWAYS;
default:
Logger::err(str::format("D3D11: Unsupported compare op: ", Mode));
return VK_COMPARE_OP_ALWAYS;
} }
if (Mode != 0) // prevent log spamming when apps use ZeroMemory
Logger::err(str::format("D3D11: Unsupported compare op: ", Mode));
return VK_COMPARE_OP_NEVER;
} }