Permalink
Browse files

Experimenally disable dual source blending on AMD too for Vulkan, see #…

  • Loading branch information...
hrydgard committed Nov 10, 2017
1 parent 05930ea commit 9519b89056dc6cf1ece9b0e15255cfbe55d49c80
Showing with 9 additions and 3 deletions.
  1. +8 −2 GPU/Vulkan/GPU_Vulkan.cpp
  2. +1 −1 ext/native/thin3d/thin3d_vulkan.cpp
View
@@ -177,9 +177,15 @@ void GPU_Vulkan::CheckGPUFeatures() {
features |= GPU_SUPPORTS_WIDE_LINES;
}
if (vulkan_->GetFeaturesEnabled().dualSrcBlend) {
// Work around for Intel driver bug. See issue #10074.
if (vulkan_->GetPhysicalDeviceProperties().vendorID != VULKAN_VENDOR_INTEL)
switch (vulkan_->GetPhysicalDeviceProperties().vendorID) {
case VULKAN_VENDOR_INTEL:
case VULKAN_VENDOR_AMD:
// Work around for Intel driver bug. See issue #10074, and also #10065 (AMD)
break;
default:
features |= GPU_SUPPORTS_DUALSOURCE_BLEND;
break;
}
}
if (vulkan_->GetFeaturesEnabled().logicOp) {
features |= GPU_SUPPORTS_LOGIC_OP;
@@ -374,7 +374,7 @@ class VKContext : public DrawContext {
void CopyFramebufferImage(Framebuffer *src, int level, int x, int y, int z, Framebuffer *dst, int dstLevel, int dstX, int dstY, int dstZ, int width, int height, int depth, int channelBits) override;
bool BlitFramebuffer(Framebuffer *src, int srcX1, int srcY1, int srcX2, int srcY2, Framebuffer *dst, int dstX1, int dstY1, int dstX2, int dstY2, int channelBits, FBBlitFilter filter) override;
bool CopyFramebufferToMemorySync(Framebuffer *src, int channelBits, int x, int y, int w, int h, Draw::DataFormat format, void *pixels, int pixelStride);
bool CopyFramebufferToMemorySync(Framebuffer *src, int channelBits, int x, int y, int w, int h, Draw::DataFormat format, void *pixels, int pixelStride) override;
// These functions should be self explanatory.
void BindFramebufferAsRenderTarget(Framebuffer *fbo, const RenderPassInfo &rp) override;

0 comments on commit 9519b89

Please sign in to comment.