Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2022-02-09 01:19:31 +0300
committerClément Foucault <foucault.clem@gmail.com>2022-03-18 22:49:45 +0300
commit8c93f8c6cc9c7300a150118d8a29f98b1ba7bbdd (patch)
treeec7aa41774b2df29d5a46bc3fb1b52aaed83f63f /source/blender/draw/intern/draw_manager_exec.c
parentbacfd55a0e4ca5a59ee46824c500992a3dddc6b6 (diff)
DRW: Add support for GPUStorageBuf
Diffstat (limited to 'source/blender/draw/intern/draw_manager_exec.c')
-rw-r--r--source/blender/draw/intern/draw_manager_exec.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/source/blender/draw/intern/draw_manager_exec.c b/source/blender/draw/intern/draw_manager_exec.c
index 07e47a0c691..319f63eebad 100644
--- a/source/blender/draw/intern/draw_manager_exec.c
+++ b/source/blender/draw/intern/draw_manager_exec.c
@@ -319,6 +319,7 @@ void DRW_state_reset(void)
GPU_texture_unbind_all();
GPU_uniformbuf_unbind_all();
+ GPU_storagebuf_unbind_all();
/* Should stay constant during the whole rendering. */
GPU_point_size(5);
@@ -621,6 +622,12 @@ static void draw_update_uniforms(DRWShadingGroup *shgroup,
case DRW_UNIFORM_BLOCK_REF:
GPU_uniformbuf_bind(*uni->block_ref, uni->location);
break;
+ case DRW_UNIFORM_STORAGE_BLOCK:
+ GPU_storagebuf_bind(uni->ssbo, uni->location);
+ break;
+ case DRW_UNIFORM_STORAGE_BLOCK_REF:
+ GPU_storagebuf_bind(*uni->ssbo_ref, uni->location);
+ break;
case DRW_UNIFORM_BLOCK_OBMATS:
state->obmats_loc = uni->location;
GPU_uniformbuf_bind(DST.vmempool->matrices_ubo[0], uni->location);
@@ -915,6 +922,7 @@ static void draw_shgroup(DRWShadingGroup *shgroup, DRWState pass_state)
if (G.debug & G_DEBUG_GPU) {
GPU_texture_unbind_all();
GPU_uniformbuf_unbind_all();
+ GPU_storagebuf_unbind_all();
}
}
GPU_shader_bind(shgroup->shader);