diff options
author | Jeroen Bakker <88891617+jeroen-blender@users.noreply.github.com> | 2022-05-24 11:58:21 +0300 |
---|---|---|
committer | Jeroen Bakker <88891617+jeroen-blender@users.noreply.github.com> | 2022-05-24 12:14:10 +0300 |
commit | d1340e1bb250f6ec4b9781f4b9c5f01a9e4da9e9 (patch) | |
tree | 07423647f3dfa221d64fe18790985295b9f80809 /source/blender/gpu/opengl | |
parent | ec5b53a01806465a08ca56a4dcd18092d29d66c3 (diff) |
Fix T97828: Split normals not visible on certain platforms.
It is a know issue that split normals aren't supported when using high
quality normals in the viewport. Some AMD platforms were pushed to use
high quality normals to work around a driver bug where 1010102 texture
formats `GL_INT_2_10_10_10_REV` wasn't uploaded to the GPU.
This change will remove commonly used polaris platforms from the
work-around. This has been tested with a RX480 against the latest AMD
whql drivers (22.5.1). Users need to ensure that they use the latest
drivers that are available on their platform.
Although this change doesn't fix the underlying issue to support edit
normals when high quality normals are enabled. It will not force that
common platforms cannot use a feature as their platform is forced into
using a work-around.
Diffstat (limited to 'source/blender/gpu/opengl')
-rw-r--r-- | source/blender/gpu/opengl/gl_backend.cc | 21 |
1 files changed, 3 insertions, 18 deletions
diff --git a/source/blender/gpu/opengl/gl_backend.cc b/source/blender/gpu/opengl/gl_backend.cc index 1cd2301aa4e..8e60533481f 100644 --- a/source/blender/gpu/opengl/gl_backend.cc +++ b/source/blender/gpu/opengl/gl_backend.cc @@ -294,26 +294,11 @@ static void detect_workarounds() * The work around uses `GPU_RGBA16I`. */ if (GPU_type_matches(GPU_DEVICE_ATI, GPU_OS_ANY, GPU_DRIVER_OFFICIAL)) { - const Vector<std::string> matches = {"RX 460", - "RX 470", - "RX 480", - "RX 490", - "RX 560", - "RX 560X", - "RX 570", - "RX 580", - "RX 580X", - "RX 590", - "RX550/550", - "(TM) 520", - "(TM) 530", - "(TM) 535", - "R5", - "R7", - "R9"}; + const Vector<std::string> matches = { + "RX550/550", "(TM) 520", "(TM) 530", "(TM) 535", "R5", "R7", "R9"}; if (match_renderer(renderer, matches)) { - GCaps.use_hq_normals_workaround = true; + GCaps.use_hq_normals_workaround = false; } } /* There is an issue with the #glBlitFramebuffer on MacOS with radeon pro graphics. |