mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Avoid breaking any alpha-stencil emulation in Adreno bug workaround
This commit is contained in:
parent
79ef185d6e
commit
0037da55a1
1 changed files with 7 additions and 5 deletions
|
@ -236,16 +236,18 @@ void DrawEngineVulkan::ConvertStateToVulkanKey(FramebufferManagerVulkan &fbManag
|
|||
|
||||
key.colorWriteMask = (rmask ? VK_COLOR_COMPONENT_R_BIT : 0) | (gmask ? VK_COLOR_COMPONENT_G_BIT : 0) | (bmask ? VK_COLOR_COMPONENT_B_BIT : 0) | (amask ? VK_COLOR_COMPONENT_A_BIT : 0);
|
||||
|
||||
// Workaround proposed in #10421
|
||||
// Workaround proposed in #10421, for bug where the color write mask is not applied correctly on Adreno.
|
||||
if ((gstate.pmskc & 0x00FFFFFF) == 0x00FFFFFF && vulkan_->GetPhysicalDeviceProperties(vulkan_->GetCurrentPhysicalDevice()).vendorID == VULKAN_VENDOR_QUALCOMM) {
|
||||
key.colorWriteMask = VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT | VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT;
|
||||
key.blendEnable = true;
|
||||
if (!key.blendEnable) {
|
||||
key.blendEnable = true;
|
||||
key.blendOpAlpha = VK_BLEND_OP_ADD;
|
||||
key.srcAlpha = VK_BLEND_FACTOR_ZERO;
|
||||
key.destAlpha = VK_BLEND_FACTOR_ONE;
|
||||
}
|
||||
key.blendOpColor = VK_BLEND_OP_ADD;
|
||||
key.blendOpAlpha = VK_BLEND_OP_ADD;
|
||||
key.srcColor = VK_BLEND_FACTOR_ZERO;
|
||||
key.srcAlpha = VK_BLEND_FACTOR_ZERO;
|
||||
key.destColor = VK_BLEND_FACTOR_ONE;
|
||||
key.destAlpha = VK_BLEND_FACTOR_ONE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue