Commit 95428331 by shrekshao Committed by Commit Bot

Enable floatBlend for D3D9

Although according to https://docs.microsoft.com/en-us/windows/desktop/direct3ddxgi/format-support-for-direct3d-feature-level-9-1-hardware D3D9 doesn't have full blending capability for RGBA32F. But turns out it could provide correct blending result in reality. As a result of some regression reports by client app, we decided to turn floatBlend on for D3D9. I tried to make a native D3D9 program to detect float blending capability. But turns out it needs quite some effort on Win10 for a D3D newbie. Considering the fact that D3D9 backend is not fully passing conformance test anyway. I don't think it worth the effort. Seems to be okay to just turn it on. Bug: chromium:970532 Change-Id: I66bec120be6eaaa62a5472b8521a97b4d23e924a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1652731Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Commit-Queue: Shrek Shao <shrekshao@google.com>
parent 0d3cf708
...@@ -714,8 +714,12 @@ void GenerateCaps(IDirect3D9 *d3d9, ...@@ -714,8 +714,12 @@ void GenerateCaps(IDirect3D9 *d3d9,
// https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_robustness.txt // https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_robustness.txt
extensions->robustBufferAccessBehavior = false; extensions->robustBufferAccessBehavior = false;
extensions->blendMinMax = true; extensions->blendMinMax = true;
// Although according to
// https://docs.microsoft.com/en-us/windows/desktop/direct3ddxgi/format-support-for-direct3d-feature-level-9-1-hardware // https://docs.microsoft.com/en-us/windows/desktop/direct3ddxgi/format-support-for-direct3d-feature-level-9-1-hardware
extensions->floatBlend = false; // D3D9 doesn't have full blending capability for RGBA32F. But turns out it could provide
// correct blending result in reality. As a result of some regression reports by client app, we
// decided to turn floatBlend on for D3D9
extensions->floatBlend = true;
extensions->framebufferBlit = true; extensions->framebufferBlit = true;
extensions->framebufferMultisample = true; extensions->framebufferMultisample = true;
extensions->instancedArraysANGLE = deviceCaps.PixelShaderVersion >= D3DPS_VERSION(3, 0); extensions->instancedArraysANGLE = deviceCaps.PixelShaderVersion >= D3DPS_VERSION(3, 0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment