mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-09-02 02:58:46 +00:00
[TEST] Adjustments on color write enable
This commit is contained in:
@@ -1877,13 +1877,19 @@ void RasterizerVulkan::UpdateColorWriteEnable(Tegra::Engines::Maxwell3D::Regs& r
|
|||||||
if (!state_tracker.TouchColorMask()) {
|
if (!state_tracker.TouchColorMask()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
size_t num_attachments{};
|
||||||
|
for (size_t index = 0; index < Maxwell::NumRenderTargets; index++) {
|
||||||
|
if (regs.rt[index].format != Tegra::RenderTargetFormat::NONE) {
|
||||||
|
num_attachments = index + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
std::array<VkBool32, Maxwell::NumRenderTargets> setup_enables{};
|
std::array<VkBool32, Maxwell::NumRenderTargets> setup_enables{};
|
||||||
for (size_t index = 0; index < Maxwell::NumRenderTargets; index++) {
|
for (size_t index = 0; index < Maxwell::NumRenderTargets; index++) {
|
||||||
const auto& mask = regs.color_mask[regs.color_mask_common ? 0 : index];
|
const auto& mask = regs.color_mask[regs.color_mask_common ? 0 : index];
|
||||||
setup_enables[index] = (mask.R || mask.G || mask.B || mask.A) ? VK_TRUE : VK_FALSE;
|
setup_enables[index] = (mask.R || mask.G || mask.B || mask.A) ? VK_TRUE : VK_FALSE;
|
||||||
}
|
}
|
||||||
scheduler.Record([setup_enables](vk::CommandBuffer cmdbuf) {
|
scheduler.Record([setup_enables, num_attachments](vk::CommandBuffer cmdbuf) {
|
||||||
cmdbuf.SetColorWriteEnableEXT(setup_enables);
|
cmdbuf.SetColorWriteEnableEXT(vk::Span<VkBool32>(setup_enables.data(), num_attachments));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -523,9 +523,6 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
|
|||||||
LOG_WARNING(Render_Vulkan, "Qualcomm drivers require scaled vertex format emulation.");
|
LOG_WARNING(Render_Vulkan, "Qualcomm drivers require scaled vertex format emulation.");
|
||||||
has_broken_descriptor_aliasing = true;
|
has_broken_descriptor_aliasing = true;
|
||||||
LOG_WARNING(Render_Vulkan, "Qualcomm drivers have broken descriptor aliasing.");
|
LOG_WARNING(Render_Vulkan, "Qualcomm drivers have broken descriptor aliasing.");
|
||||||
LOG_WARNING(Render_Vulkan, "Qualcomm drivers have broken color write enable.");
|
|
||||||
RemoveExtensionFeature(extensions.color_write_enable, features.color_write_enable,
|
|
||||||
VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME);
|
|
||||||
LOG_WARNING(Render_Vulkan, "Qualcomm drivers have broken shader atomic int64.");
|
LOG_WARNING(Render_Vulkan, "Qualcomm drivers have broken shader atomic int64.");
|
||||||
RemoveExtensionFeature(extensions.shader_atomic_int64, features.shader_atomic_int64,
|
RemoveExtensionFeature(extensions.shader_atomic_int64, features.shader_atomic_int64,
|
||||||
VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME);
|
VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME);
|
||||||
|
|||||||
Reference in New Issue
Block a user