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

Author: Dave Airlie <[email protected]>
Date:   Tue Dec 21 16:08:21 2021 +1000

mesa/st: move st_new_renderbuffer_fb to manager

This is st_manager code really.

Reviewed-by: Kristian H. Kristensen <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14675>

---

 src/mesa/state_tracker/st_cb_fbo.c  | 128 ------------------------------------
 src/mesa/state_tracker/st_cb_fbo.h  |   4 --
 src/mesa/state_tracker/st_manager.c | 126 +++++++++++++++++++++++++++++++++++
 3 files changed, 126 insertions(+), 132 deletions(-)

diff --git a/src/mesa/state_tracker/st_cb_fbo.c 
b/src/mesa/state_tracker/st_cb_fbo.c
index d2604603771..a96fc2c3e4a 100644
--- a/src/mesa/state_tracker/st_cb_fbo.c
+++ b/src/mesa/state_tracker/st_cb_fbo.c
@@ -59,134 +59,6 @@
 #include "util/format/u_format.h"
 #include "util/u_inlines.h"
 #include "util/u_surface.h"
-#include "util/u_memory.h"
-
-/**
- * Allocate a renderbuffer for an on-screen window (not a user-created
- * renderbuffer).  The window system code determines the format.
- */
-struct gl_renderbuffer *
-st_new_renderbuffer_fb(enum pipe_format format, unsigned samples, boolean sw)
-{
-   struct gl_renderbuffer *rb;
-
-   rb = CALLOC_STRUCT(gl_renderbuffer);
-   if (!rb) {
-      _mesa_error(NULL, GL_OUT_OF_MEMORY, "creating renderbuffer");
-      return NULL;
-   }
-
-   _mesa_init_renderbuffer(rb, 0);
-   rb->ClassID = 0x4242; /* just a unique value */
-   rb->NumSamples = samples;
-   rb->NumStorageSamples = samples;
-   rb->Format = st_pipe_format_to_mesa_format(format);
-   rb->_BaseFormat = _mesa_get_format_base_format(rb->Format);
-   rb->software = sw;
-
-   switch (format) {
-   case PIPE_FORMAT_B10G10R10A2_UNORM:
-   case PIPE_FORMAT_R10G10B10A2_UNORM:
-      rb->InternalFormat = GL_RGB10_A2;
-      break;
-   case PIPE_FORMAT_R10G10B10X2_UNORM:
-   case PIPE_FORMAT_B10G10R10X2_UNORM:
-      rb->InternalFormat = GL_RGB10;
-      break;
-   case PIPE_FORMAT_R8G8B8A8_UNORM:
-   case PIPE_FORMAT_B8G8R8A8_UNORM:
-   case PIPE_FORMAT_A8R8G8B8_UNORM:
-      rb->InternalFormat = GL_RGBA8;
-      break;
-   case PIPE_FORMAT_R8G8B8X8_UNORM:
-   case PIPE_FORMAT_B8G8R8X8_UNORM:
-   case PIPE_FORMAT_X8R8G8B8_UNORM:
-   case PIPE_FORMAT_R8G8B8_UNORM:
-      rb->InternalFormat = GL_RGB8;
-      break;
-   case PIPE_FORMAT_R8G8B8A8_SRGB:
-   case PIPE_FORMAT_B8G8R8A8_SRGB:
-   case PIPE_FORMAT_A8R8G8B8_SRGB:
-      rb->InternalFormat = GL_SRGB8_ALPHA8;
-      break;
-   case PIPE_FORMAT_R8G8B8X8_SRGB:
-   case PIPE_FORMAT_B8G8R8X8_SRGB:
-   case PIPE_FORMAT_X8R8G8B8_SRGB:
-      rb->InternalFormat = GL_SRGB8;
-      break;
-   case PIPE_FORMAT_B5G5R5A1_UNORM:
-      rb->InternalFormat = GL_RGB5_A1;
-      break;
-   case PIPE_FORMAT_B4G4R4A4_UNORM:
-      rb->InternalFormat = GL_RGBA4;
-      break;
-   case PIPE_FORMAT_B5G6R5_UNORM:
-      rb->InternalFormat = GL_RGB565;
-      break;
-   case PIPE_FORMAT_Z16_UNORM:
-      rb->InternalFormat = GL_DEPTH_COMPONENT16;
-      break;
-   case PIPE_FORMAT_Z32_UNORM:
-      rb->InternalFormat = GL_DEPTH_COMPONENT32;
-      break;
-   case PIPE_FORMAT_Z24_UNORM_S8_UINT:
-   case PIPE_FORMAT_S8_UINT_Z24_UNORM:
-      rb->InternalFormat = GL_DEPTH24_STENCIL8_EXT;
-      break;
-   case PIPE_FORMAT_Z24X8_UNORM:
-   case PIPE_FORMAT_X8Z24_UNORM:
-      rb->InternalFormat = GL_DEPTH_COMPONENT24;
-      break;
-   case PIPE_FORMAT_S8_UINT:
-      rb->InternalFormat = GL_STENCIL_INDEX8_EXT;
-      break;
-   case PIPE_FORMAT_R16G16B16A16_SNORM:
-      /* accum buffer */
-      rb->InternalFormat = GL_RGBA16_SNORM;
-      break;
-   case PIPE_FORMAT_R16G16B16A16_UNORM:
-      rb->InternalFormat = GL_RGBA16;
-      break;
-   case PIPE_FORMAT_R16G16B16_UNORM:
-      rb->InternalFormat = GL_RGB16;
-      break;
-   case PIPE_FORMAT_R8_UNORM:
-      rb->InternalFormat = GL_R8;
-      break;
-   case PIPE_FORMAT_R8G8_UNORM:
-      rb->InternalFormat = GL_RG8;
-      break;
-   case PIPE_FORMAT_R16_UNORM:
-      rb->InternalFormat = GL_R16;
-      break;
-   case PIPE_FORMAT_R16G16_UNORM:
-      rb->InternalFormat = GL_RG16;
-      break;
-   case PIPE_FORMAT_R32G32B32A32_FLOAT:
-      rb->InternalFormat = GL_RGBA32F;
-      break;
-   case PIPE_FORMAT_R32G32B32X32_FLOAT:
-   case PIPE_FORMAT_R32G32B32_FLOAT:
-      rb->InternalFormat = GL_RGB32F;
-      break;
-   case PIPE_FORMAT_R16G16B16A16_FLOAT:
-      rb->InternalFormat = GL_RGBA16F;
-      break;
-   case PIPE_FORMAT_R16G16B16X16_FLOAT:
-      rb->InternalFormat = GL_RGB16F;
-      break;
-   default:
-      _mesa_problem(NULL,
-                    "Unexpected format %s in st_new_renderbuffer_fb",
-                    util_format_name(format));
-      FREE(rb);
-      return NULL;
-   }
-
-   rb->surface = NULL;
-
-   return rb;
-}
 
 void
 st_regen_renderbuffer_surface(struct st_context *st,
diff --git a/src/mesa/state_tracker/st_cb_fbo.h 
b/src/mesa/state_tracker/st_cb_fbo.h
index 362c4db55bf..7ddfd1d4e5d 100644
--- a/src/mesa/state_tracker/st_cb_fbo.h
+++ b/src/mesa/state_tracker/st_cb_fbo.h
@@ -61,10 +61,6 @@ st_ws_framebuffer(struct gl_framebuffer *fb)
    return NULL;
 }
 
-
-extern struct gl_renderbuffer *
-st_new_renderbuffer_fb(enum pipe_format format, unsigned samples, boolean sw);
-
 extern void
 st_update_renderbuffer_surface(struct st_context *st,
                                struct gl_renderbuffer *strb);
diff --git a/src/mesa/state_tracker/st_manager.c 
b/src/mesa/state_tracker/st_manager.c
index 7a82e2c029f..ae94a45c444 100644
--- a/src/mesa/state_tracker/st_manager.c
+++ b/src/mesa/state_tracker/st_manager.c
@@ -303,6 +303,132 @@ st_framebuffer_update_attachments(struct gl_framebuffer 
*stfb)
    stfb->stamp++;
 }
 
+/**
+ * Allocate a renderbuffer for an on-screen window (not a user-created
+ * renderbuffer).  The window system code determines the format.
+ */
+static struct gl_renderbuffer *
+st_new_renderbuffer_fb(enum pipe_format format, unsigned samples, boolean sw)
+{
+   struct gl_renderbuffer *rb;
+
+   rb = CALLOC_STRUCT(gl_renderbuffer);
+   if (!rb) {
+      _mesa_error(NULL, GL_OUT_OF_MEMORY, "creating renderbuffer");
+      return NULL;
+   }
+
+   _mesa_init_renderbuffer(rb, 0);
+   rb->ClassID = 0x4242; /* just a unique value */
+   rb->NumSamples = samples;
+   rb->NumStorageSamples = samples;
+   rb->Format = st_pipe_format_to_mesa_format(format);
+   rb->_BaseFormat = _mesa_get_format_base_format(rb->Format);
+   rb->software = sw;
+
+   switch (format) {
+   case PIPE_FORMAT_B10G10R10A2_UNORM:
+   case PIPE_FORMAT_R10G10B10A2_UNORM:
+      rb->InternalFormat = GL_RGB10_A2;
+      break;
+   case PIPE_FORMAT_R10G10B10X2_UNORM:
+   case PIPE_FORMAT_B10G10R10X2_UNORM:
+      rb->InternalFormat = GL_RGB10;
+      break;
+   case PIPE_FORMAT_R8G8B8A8_UNORM:
+   case PIPE_FORMAT_B8G8R8A8_UNORM:
+   case PIPE_FORMAT_A8R8G8B8_UNORM:
+      rb->InternalFormat = GL_RGBA8;
+      break;
+   case PIPE_FORMAT_R8G8B8X8_UNORM:
+   case PIPE_FORMAT_B8G8R8X8_UNORM:
+   case PIPE_FORMAT_X8R8G8B8_UNORM:
+   case PIPE_FORMAT_R8G8B8_UNORM:
+      rb->InternalFormat = GL_RGB8;
+      break;
+   case PIPE_FORMAT_R8G8B8A8_SRGB:
+   case PIPE_FORMAT_B8G8R8A8_SRGB:
+   case PIPE_FORMAT_A8R8G8B8_SRGB:
+      rb->InternalFormat = GL_SRGB8_ALPHA8;
+      break;
+   case PIPE_FORMAT_R8G8B8X8_SRGB:
+   case PIPE_FORMAT_B8G8R8X8_SRGB:
+   case PIPE_FORMAT_X8R8G8B8_SRGB:
+      rb->InternalFormat = GL_SRGB8;
+      break;
+   case PIPE_FORMAT_B5G5R5A1_UNORM:
+      rb->InternalFormat = GL_RGB5_A1;
+      break;
+   case PIPE_FORMAT_B4G4R4A4_UNORM:
+      rb->InternalFormat = GL_RGBA4;
+      break;
+   case PIPE_FORMAT_B5G6R5_UNORM:
+      rb->InternalFormat = GL_RGB565;
+      break;
+   case PIPE_FORMAT_Z16_UNORM:
+      rb->InternalFormat = GL_DEPTH_COMPONENT16;
+      break;
+   case PIPE_FORMAT_Z32_UNORM:
+      rb->InternalFormat = GL_DEPTH_COMPONENT32;
+      break;
+   case PIPE_FORMAT_Z24_UNORM_S8_UINT:
+   case PIPE_FORMAT_S8_UINT_Z24_UNORM:
+      rb->InternalFormat = GL_DEPTH24_STENCIL8_EXT;
+      break;
+   case PIPE_FORMAT_Z24X8_UNORM:
+   case PIPE_FORMAT_X8Z24_UNORM:
+      rb->InternalFormat = GL_DEPTH_COMPONENT24;
+      break;
+   case PIPE_FORMAT_S8_UINT:
+      rb->InternalFormat = GL_STENCIL_INDEX8_EXT;
+      break;
+   case PIPE_FORMAT_R16G16B16A16_SNORM:
+      /* accum buffer */
+      rb->InternalFormat = GL_RGBA16_SNORM;
+      break;
+   case PIPE_FORMAT_R16G16B16A16_UNORM:
+      rb->InternalFormat = GL_RGBA16;
+      break;
+   case PIPE_FORMAT_R16G16B16_UNORM:
+      rb->InternalFormat = GL_RGB16;
+      break;
+   case PIPE_FORMAT_R8_UNORM:
+      rb->InternalFormat = GL_R8;
+      break;
+   case PIPE_FORMAT_R8G8_UNORM:
+      rb->InternalFormat = GL_RG8;
+      break;
+   case PIPE_FORMAT_R16_UNORM:
+      rb->InternalFormat = GL_R16;
+      break;
+   case PIPE_FORMAT_R16G16_UNORM:
+      rb->InternalFormat = GL_RG16;
+      break;
+   case PIPE_FORMAT_R32G32B32A32_FLOAT:
+      rb->InternalFormat = GL_RGBA32F;
+      break;
+   case PIPE_FORMAT_R32G32B32X32_FLOAT:
+   case PIPE_FORMAT_R32G32B32_FLOAT:
+      rb->InternalFormat = GL_RGB32F;
+      break;
+   case PIPE_FORMAT_R16G16B16A16_FLOAT:
+      rb->InternalFormat = GL_RGBA16F;
+      break;
+   case PIPE_FORMAT_R16G16B16X16_FLOAT:
+      rb->InternalFormat = GL_RGB16F;
+      break;
+   default:
+      _mesa_problem(NULL,
+                    "Unexpected format %s in st_new_renderbuffer_fb",
+                    util_format_name(format));
+      FREE(rb);
+      return NULL;
+   }
+
+   rb->surface = NULL;
+
+   return rb;
+}
 
 /**
  * Add a renderbuffer to the framebuffer.  The framebuffer is one that

Reply via email to