mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-09-09 05:32:36 +00:00
[vulkan] Adjust blend targets from texture types
This commit is contained in:
@@ -1724,9 +1724,13 @@ void RasterizerVulkan::UpdateBlending(Tegra::Engines::Maxwell3D::Regs& regs) {
|
|||||||
|
|
||||||
if (state_tracker.TouchBlendEnable()) {
|
if (state_tracker.TouchBlendEnable()) {
|
||||||
std::array<VkBool32, Maxwell::NumRenderTargets> setup_enables{};
|
std::array<VkBool32, Maxwell::NumRenderTargets> setup_enables{};
|
||||||
std::ranges::transform(
|
for (size_t index = 0; index < Maxwell::NumRenderTargets; index++) {
|
||||||
regs.blend.enable, setup_enables.begin(),
|
const auto format =
|
||||||
[&](const auto& is_enabled) { return is_enabled != 0 ? VK_TRUE : VK_FALSE; });
|
VideoCore::Surface::PixelFormatFromRenderTargetFormat(regs.rt[index].format);
|
||||||
|
const bool is_integer = IsPixelFormatInteger(format);
|
||||||
|
setup_enables[index] =
|
||||||
|
(!is_integer && regs.blend.enable[index] != 0) ? VK_TRUE : VK_FALSE;
|
||||||
|
}
|
||||||
scheduler.Record([setup_enables](vk::CommandBuffer cmdbuf) {
|
scheduler.Record([setup_enables](vk::CommandBuffer cmdbuf) {
|
||||||
cmdbuf.SetColorBlendEnableEXT(0, setup_enables);
|
cmdbuf.SetColorBlendEnableEXT(0, setup_enables);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user