mirror of
https://github.com/doitsujin/dxvk.git
synced 2024-12-03 22:24:13 +01:00
[d3d11] Reduced log spamming, improved parameter naming consistency
This commit is contained in:
parent
052f231295
commit
4c8c23eea1
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user