Module: Mesa
Branch: main
Commit: b89a48e00d0713563aec852caed564affd486098
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b89a48e00d0713563aec852caed564affd486098

Author: Faith Ekstrand <[email protected]>
Date:   Fri Aug  4 06:02:57 2023 -0500

Revert "mesa, compiler: Move gl_texture_index to glsl_types.h"

This reverts commit 1b836a52ea2dcc0b77a48a2a3d1f9052321cf325.  This
patch, while claiming to decouple things, actually increases coupling
because it leaks two OpenGL state tracker limits and an OpenGL state
tracker fixed binding enum into the entire compiler.  Nothing wants to
know these outside the OpenGL state tracker and the GL-specific compiler
passes.  Put them back where they were.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24491>

---

 src/compiler/glsl/glsl_parser_extras.h |  2 --
 src/compiler/glsl_types.h              |  5 +++++
 src/compiler/shader_enums.h            | 26 --------------------------
 src/mesa/main/config.h                 |  3 +++
 src/mesa/main/menums.h                 | 22 ++++++++++++++++++++++
 5 files changed, 30 insertions(+), 28 deletions(-)

diff --git a/src/compiler/glsl/glsl_parser_extras.h 
b/src/compiler/glsl/glsl_parser_extras.h
index 90d401707e3..c9277be953f 100644
--- a/src/compiler/glsl/glsl_parser_extras.h
+++ b/src/compiler/glsl/glsl_parser_extras.h
@@ -32,8 +32,6 @@
 
 #include <stdlib.h>
 #include "glsl_symbol_table.h"
-#include "main/config.h"
-#include "main/menums.h"
 
 /* THIS is a macro defined somewhere deep in the Windows MSVC header files.
  * Undefine it here to avoid collision with the lexer's THIS token.
diff --git a/src/compiler/glsl_types.h b/src/compiler/glsl_types.h
index 10b94a959c7..70c8e6ede54 100644
--- a/src/compiler/glsl_types.h
+++ b/src/compiler/glsl_types.h
@@ -36,6 +36,11 @@
 #include "util/macros.h"
 #include "util/simple_mtx.h"
 
+#ifdef __cplusplus
+#include "mesa/main/config.h"
+#include "mesa/main/menums.h" /* for gl_texture_index, C++'s enum rules are 
broken */
+#endif
+
 struct glsl_type;
 
 #ifdef __cplusplus
diff --git a/src/compiler/shader_enums.h b/src/compiler/shader_enums.h
index 3eaaf2fe924..10358f97d32 100644
--- a/src/compiler/shader_enums.h
+++ b/src/compiler/shader_enums.h
@@ -32,10 +32,6 @@
 
 /* Project-wide (GL and Vulkan) maximum. */
 #define MAX_DRAW_BUFFERS 8
-/* Size of an atomic counter in bytes according to ARB_shader_atomic_counters 
*/
-#define ATOMIC_COUNTER_SIZE 4
-/** For GL_ARB_gpu_shader5 */
-#define MAX_VERTEX_STREAMS 4
 
 #ifdef __cplusplus
 extern "C" {
@@ -1352,28 +1348,6 @@ enum ENUM_PACKED gl_subgroup_size
    SUBGROUP_SIZE_REQUIRE_128 = 128, /**< VK_EXT_subgroup_size_control */
 };
 
-/**
- * An index for each type of texture object.  These correspond to the GL
- * texture target enums, such as GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP, etc.
- * Note: the order is from highest priority to lowest priority.
- */
-typedef enum
-{
-   TEXTURE_2D_MULTISAMPLE_INDEX,
-   TEXTURE_2D_MULTISAMPLE_ARRAY_INDEX,
-   TEXTURE_CUBE_ARRAY_INDEX,
-   TEXTURE_BUFFER_INDEX,
-   TEXTURE_2D_ARRAY_INDEX,
-   TEXTURE_1D_ARRAY_INDEX,
-   TEXTURE_EXTERNAL_INDEX,
-   TEXTURE_CUBE_INDEX,
-   TEXTURE_3D_INDEX,
-   TEXTURE_RECT_INDEX,
-   TEXTURE_2D_INDEX,
-   TEXTURE_1D_INDEX,
-   NUM_TEXTURE_TARGETS
-} gl_texture_index;
-
 /* Ordered from narrower to wider scope. */
 typedef enum {
    SCOPE_NONE,
diff --git a/src/mesa/main/config.h b/src/mesa/main/config.h
index 859add7c5c7..753d847efb1 100644
--- a/src/mesa/main/config.h
+++ b/src/mesa/main/config.h
@@ -168,6 +168,8 @@
 #define MAX_ATOMIC_COUNTERS            4096
 /* 6 is for vertex, hull, domain, geometry, fragment, and compute shader. */
 #define MAX_COMBINED_ATOMIC_BUFFERS    (MAX_UNIFORM_BUFFERS * 6)
+/* Size of an atomic counter in bytes according to ARB_shader_atomic_counters 
*/
+#define ATOMIC_COUNTER_SIZE            4
 #define MAX_IMAGE_UNIFORMS             32
 /* 6 is for vertex, hull, domain, geometry, fragment, and compute shader. */
 #define MAX_IMAGE_UNITS                (MAX_IMAGE_UNIFORMS * 6)
@@ -251,6 +253,7 @@
 #define MIN_FRAGMENT_INTERPOLATION_OFFSET   -0.5
 #define MAX_FRAGMENT_INTERPOLATION_OFFSET   0.5
 #define FRAGMENT_INTERPOLATION_OFFSET_BITS  4
+#define MAX_VERTEX_STREAMS                  4
 /*@}*/
 
 /** For GL_ARB_shader_subroutine */
diff --git a/src/mesa/main/menums.h b/src/mesa/main/menums.h
index ff8d310cc2a..2a711ffee96 100644
--- a/src/mesa/main/menums.h
+++ b/src/mesa/main/menums.h
@@ -63,6 +63,28 @@ _mesa_is_api_gles2(gl_api api)
 #endif
 }
 
+/**
+ * An index for each type of texture object.  These correspond to the GL
+ * texture target enums, such as GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP, etc.
+ * Note: the order is from highest priority to lowest priority.
+ */
+typedef enum
+{
+   TEXTURE_2D_MULTISAMPLE_INDEX,
+   TEXTURE_2D_MULTISAMPLE_ARRAY_INDEX,
+   TEXTURE_CUBE_ARRAY_INDEX,
+   TEXTURE_BUFFER_INDEX,
+   TEXTURE_2D_ARRAY_INDEX,
+   TEXTURE_1D_ARRAY_INDEX,
+   TEXTURE_EXTERNAL_INDEX,
+   TEXTURE_CUBE_INDEX,
+   TEXTURE_3D_INDEX,
+   TEXTURE_RECT_INDEX,
+   TEXTURE_2D_INDEX,
+   TEXTURE_1D_INDEX,
+   NUM_TEXTURE_TARGETS
+} gl_texture_index;
+
 /**
  * Remapped color logical operations
  *

Reply via email to