[Bf-blender-cvs] [d1340e1bb25] blender-v3.2-release: Fix T97828: Split normals not visible on certain platforms.

Jeroen Bakker noreply at git.blender.org
Tue May 24 11:16:09 CEST 2022


Commit: d1340e1bb250f6ec4b9781f4b9c5f01a9e4da9e9
Author: Jeroen Bakker
Date:   Tue May 24 10:58:21 2022 +0200
Branches: blender-v3.2-release
https://developer.blender.org/rBd1340e1bb250f6ec4b9781f4b9c5f01a9e4da9e9

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.

===================================================================

M	source/blender/gpu/opengl/gl_backend.cc

===================================================================

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.



More information about the Bf-blender-cvs mailing list