Преглед на файлове

Vulkan: implement Logical Operations.

Fernando Sahmkow преди 4 години
родител
ревизия
14d2c77f91
променени са 2 файла, в които са добавени 3 реда и са изтрити 3 реда
  1. 2 2
      src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
  2. 1 1
      src/video_core/vulkan_common/vulkan_device.cpp

+ 2 - 2
src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp

@@ -748,8 +748,8 @@ void GraphicsPipeline::MakePipeline(VkRenderPass render_pass) {
         .sType = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,
         .pNext = nullptr,
         .flags = 0,
-        .logicOpEnable = VK_FALSE,
-        .logicOp = VK_LOGIC_OP_COPY,
+        .logicOpEnable = key.state.logic_op_enable != 0,
+        .logicOp = static_cast<VkLogicOp>(key.state.logic_op.Value()),
         .attachmentCount = static_cast<u32>(cb_attachments.size()),
         .pAttachments = cb_attachments.data(),
         .blendConstants = {},

+ 1 - 1
src/video_core/vulkan_common/vulkan_device.cpp

@@ -271,7 +271,7 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
             .tessellationShader = true,
             .sampleRateShading = true,
             .dualSrcBlend = true,
-            .logicOp = false,
+            .logicOp = true,
             .multiDrawIndirect = false,
             .drawIndirectFirstInstance = false,
             .depthClamp = true,