[Bf-blender-cvs] [98557357cdc] temp-gpu-compute-shaders: Use const signature for driver owned data.

Jeroen Bakker noreply at git.blender.org
Wed May 26 16:47:10 CEST 2021


Commit: 98557357cdc1a0fb2667cdb0e79fba5849e9f126
Author: Jeroen Bakker
Date:   Wed May 26 16:46:49 2021 +0200
Branches: temp-gpu-compute-shaders
https://developer.blender.org/rB98557357cdc1a0fb2667cdb0e79fba5849e9f126

Use const signature for driver owned data.

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

M	source/blender/gpu/GPU_index_buffer.h
M	source/blender/gpu/GPU_vertex_buffer.h
M	source/blender/gpu/intern/gpu_index_buffer.cc
M	source/blender/gpu/intern/gpu_index_buffer_private.hh
M	source/blender/gpu/intern/gpu_vertex_buffer.cc
M	source/blender/gpu/intern/gpu_vertex_buffer_private.hh
M	source/blender/gpu/opengl/gl_index_buffer.cc
M	source/blender/gpu/opengl/gl_index_buffer.hh
M	source/blender/gpu/opengl/gl_vertex_buffer.cc
M	source/blender/gpu/opengl/gl_vertex_buffer.hh
M	source/blender/gpu/tests/gpu_shader_test.cc

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

diff --git a/source/blender/gpu/GPU_index_buffer.h b/source/blender/gpu/GPU_index_buffer.h
index d1e68842563..bdacfe6fc0f 100644
--- a/source/blender/gpu/GPU_index_buffer.h
+++ b/source/blender/gpu/GPU_index_buffer.h
@@ -86,7 +86,7 @@ void GPU_indexbuf_create_subrange_in_place(GPUIndexBuf *elem,
  * Note that the returned pointer is still owned by the driver. To get an
  * local copy, use `GPU_indexbuf_unmap` after calling `GPU_indexbuf_read`.
  */
-uint32_t *GPU_indexbuf_read(GPUIndexBuf *elem);
+const uint32_t *GPU_indexbuf_read(GPUIndexBuf *elem);
 uint32_t *GPU_indexbuf_unmap(const GPUIndexBuf *elem, const uint32_t *mapped_data);
 
 void GPU_indexbuf_discard(GPUIndexBuf *elem);
diff --git a/source/blender/gpu/GPU_vertex_buffer.h b/source/blender/gpu/GPU_vertex_buffer.h
index 605d660126f..2c54016daa7 100644
--- a/source/blender/gpu/GPU_vertex_buffer.h
+++ b/source/blender/gpu/GPU_vertex_buffer.h
@@ -77,7 +77,7 @@ GPUVertBuf *GPU_vertbuf_create_with_format_ex(const GPUVertFormat *, GPUUsageTyp
  * Note that the returned pointer is still owned by the driver. To get an
  * local copy, use `GPU_vertbuf_unmap` after calling `GPU_vertbuf_read`.
  */
-void *GPU_vertbuf_read(GPUVertBuf *verts);
+const void *GPU_vertbuf_read(GPUVertBuf *verts);
 void *GPU_vertbuf_unmap(const GPUVertBuf *verts, const void *mapped_data);
 void GPU_vertbuf_clear(GPUVertBuf *verts);
 void GPU_vertbuf_discard(GPUVertBuf *);
diff --git a/source/blender/gpu/intern/gpu_index_buffer.cc b/source/blender/gpu/intern/gpu_index_buffer.cc
index 9526a961e12..20a26c0fe9d 100644
--- a/source/blender/gpu/intern/gpu_index_buffer.cc
+++ b/source/blender/gpu/intern/gpu_index_buffer.cc
@@ -378,7 +378,7 @@ void GPU_indexbuf_create_subrange_in_place(GPUIndexBuf *elem,
   unwrap(elem)->init_subrange(unwrap(elem_src), start, length);
 }
 
-uint32_t *GPU_indexbuf_read(GPUIndexBuf *elem)
+const uint32_t *GPU_indexbuf_read(GPUIndexBuf *elem)
 {
   return unwrap(elem)->read();
 }
diff --git a/source/blender/gpu/intern/gpu_index_buffer_private.hh b/source/blender/gpu/intern/gpu_index_buffer_private.hh
index 63958170e50..358258604bf 100644
--- a/source/blender/gpu/intern/gpu_index_buffer_private.hh
+++ b/source/blender/gpu/intern/gpu_index_buffer_private.hh
@@ -94,7 +94,7 @@ class IndexBuf {
 
   virtual void bind_as_ssbo(uint binding) = 0;
 
-  virtual uint32_t *read() const = 0;
+  virtual const uint32_t *read() const = 0;
   uint32_t *unmap(const uint32_t *mapped_memory) const;
 
  private:
diff --git a/source/blender/gpu/intern/gpu_vertex_buffer.cc b/source/blender/gpu/intern/gpu_vertex_buffer.cc
index 6f48ef45645..3ecbb740a0c 100644
--- a/source/blender/gpu/intern/gpu_vertex_buffer.cc
+++ b/source/blender/gpu/intern/gpu_vertex_buffer.cc
@@ -149,7 +149,7 @@ GPUVertBuf *GPU_vertbuf_duplicate(GPUVertBuf *verts_)
   return wrap(unwrap(verts_)->duplicate());
 }
 
-void *GPU_vertbuf_read(GPUVertBuf *verts)
+const void *GPU_vertbuf_read(GPUVertBuf *verts)
 {
   return unwrap(verts)->read();
 }
diff --git a/source/blender/gpu/intern/gpu_vertex_buffer_private.hh b/source/blender/gpu/intern/gpu_vertex_buffer_private.hh
index 4aedd32e22b..9531c2c1a5f 100644
--- a/source/blender/gpu/intern/gpu_vertex_buffer_private.hh
+++ b/source/blender/gpu/intern/gpu_vertex_buffer_private.hh
@@ -97,7 +97,7 @@ class VertBuf {
   }
 
   virtual void update_sub(uint start, uint len, void *data) = 0;
-  virtual void *read() const = 0;
+  virtual const void *read() const = 0;
   virtual void *unmap(const void *mapped_data) const = 0;
 
  protected:
diff --git a/source/blender/gpu/opengl/gl_index_buffer.cc b/source/blender/gpu/opengl/gl_index_buffer.cc
index ac5d4b490f4..e305f765ad9 100644
--- a/source/blender/gpu/opengl/gl_index_buffer.cc
+++ b/source/blender/gpu/opengl/gl_index_buffer.cc
@@ -63,7 +63,7 @@ void GLIndexBuf::bind_as_ssbo(uint binding)
   glBindBufferBase(GL_SHADER_STORAGE_BUFFER, binding, ibo_id_);
 }
 
-uint32_t *GLIndexBuf::read() const
+const uint32_t *GLIndexBuf::read() const
 {
   BLI_assert(is_active());
   void *data = glMapBuffer(GL_ELEMENT_ARRAY_BUFFER, GL_READ_ONLY);
diff --git a/source/blender/gpu/opengl/gl_index_buffer.hh b/source/blender/gpu/opengl/gl_index_buffer.hh
index 9a1f5c5d4e5..0dbdaa6d398 100644
--- a/source/blender/gpu/opengl/gl_index_buffer.hh
+++ b/source/blender/gpu/opengl/gl_index_buffer.hh
@@ -45,7 +45,7 @@ class GLIndexBuf : public IndexBuf {
   void bind(void);
   void bind_as_ssbo(uint binding) override;
 
-  uint32_t *read() const override;
+  const uint32_t *read() const override;
 
   void *offset_ptr(uint additional_vertex_offset) const
   {
diff --git a/source/blender/gpu/opengl/gl_vertex_buffer.cc b/source/blender/gpu/opengl/gl_vertex_buffer.cc
index 52e75ebaae5..ce16a491528 100644
--- a/source/blender/gpu/opengl/gl_vertex_buffer.cc
+++ b/source/blender/gpu/opengl/gl_vertex_buffer.cc
@@ -123,7 +123,7 @@ void GLVertBuf::bind_as_ssbo(uint binding)
   glBindBufferBase(GL_SHADER_STORAGE_BUFFER, binding, vbo_id_);
 }
 
-void *GLVertBuf::read() const
+const void *GLVertBuf::read() const
 {
   BLI_assert(is_active());
   void *result = glMapBuffer(GL_ARRAY_BUFFER, GL_READ_ONLY);
diff --git a/source/blender/gpu/opengl/gl_vertex_buffer.hh b/source/blender/gpu/opengl/gl_vertex_buffer.hh
index a81a647da55..6c38a2225b3 100644
--- a/source/blender/gpu/opengl/gl_vertex_buffer.hh
+++ b/source/blender/gpu/opengl/gl_vertex_buffer.hh
@@ -47,7 +47,7 @@ class GLVertBuf : public VertBuf {
 
   void update_sub(uint start, uint len, void *data) override;
 
-  void *read() const override;
+  const void *read() const override;
   void *unmap(const void *mapped_data) const override;
 
  protected:
diff --git a/source/blender/gpu/tests/gpu_shader_test.cc b/source/blender/gpu/tests/gpu_shader_test.cc
index 9ba6cce60e3..e8645b89e41 100644
--- a/source/blender/gpu/tests/gpu_shader_test.cc
+++ b/source/blender/gpu/tests/gpu_shader_test.cc
@@ -186,7 +186,7 @@ void main() {
   GPU_memory_barrier(GPU_BARRIER_SHADER_STORAGE);
 
   /* Download the vertex buffer. */
-  float *data = static_cast<float *>(GPU_vertbuf_read(vbo));
+  const float *data = static_cast<const float *>(GPU_vertbuf_read(vbo));
   ASSERT_NE(data, nullptr);
   for (int index = 0; index < SIZE; index++) {
     float expected_value = index;
@@ -246,7 +246,7 @@ void main() {
   GPU_memory_barrier(GPU_BARRIER_SHADER_STORAGE);
 
   /* Download the index buffer. */
-  uint32_t *data = GPU_indexbuf_read(ibo);
+  const uint32_t *data = GPU_indexbuf_read(ibo);
   ASSERT_NE(data, nullptr);
   for (int index = 0; index < SIZE; index++) {
     uint32_t expected = index;



More information about the Bf-blender-cvs mailing list