Mesa (master): st/mesa: add geometry shader ubo support

Dave Airlie airlied at kemper.freedesktop.org
Thu Oct 17 07:36:09 UTC 2013


Module: Mesa
Branch: master
Commit: 038a9aab33070b9ff48bb082dd1c731d89e2f9b4
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=038a9aab33070b9ff48bb082dd1c731d89e2f9b4

Author: Dave Airlie <airlied at gmail.com>
Date:   Mon Oct 14 12:18:53 2013 +1000

st/mesa: add geometry shader ubo support

This just adds the missing bits so the ubo tests don't crash.

Signed-off-by: Dave Airlie <airlied at redhat.com>
Reviewed-by: Brian Paul <brianp at vmware.com>

---

 src/mesa/state_tracker/st_atom.c          |    1 +
 src/mesa/state_tracker/st_atom.h          |    1 +
 src/mesa/state_tracker/st_atom_constbuf.c |   17 +++++++++++++++++
 3 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/src/mesa/state_tracker/st_atom.c b/src/mesa/state_tracker/st_atom.c
index 1abaf8f..682073e 100644
--- a/src/mesa/state_tracker/st_atom.c
+++ b/src/mesa/state_tracker/st_atom.c
@@ -66,6 +66,7 @@ static const struct st_tracked_state *atoms[] =
    &st_update_fs_constants,
    &st_bind_vs_ubos,
    &st_bind_fs_ubos,
+   &st_bind_gs_ubos,
    &st_update_pixel_transfer,
 
    /* this must be done after the vertex program update */
diff --git a/src/mesa/state_tracker/st_atom.h b/src/mesa/state_tracker/st_atom.h
index 101a3a6..ef24fac 100644
--- a/src/mesa/state_tracker/st_atom.h
+++ b/src/mesa/state_tracker/st_atom.h
@@ -69,6 +69,7 @@ extern const struct st_tracked_state st_update_gs_constants;
 extern const struct st_tracked_state st_update_vs_constants;
 extern const struct st_tracked_state st_bind_fs_ubos;
 extern const struct st_tracked_state st_bind_vs_ubos;
+extern const struct st_tracked_state st_bind_gs_ubos;
 extern const struct st_tracked_state st_update_pixel_transfer;
 
 
diff --git a/src/mesa/state_tracker/st_atom_constbuf.c b/src/mesa/state_tracker/st_atom_constbuf.c
index 723ab56..f3c4576 100644
--- a/src/mesa/state_tracker/st_atom_constbuf.c
+++ b/src/mesa/state_tracker/st_atom_constbuf.c
@@ -254,4 +254,21 @@ const struct st_tracked_state st_bind_fs_ubos = {
    bind_fs_ubos
 };
 
+static void bind_gs_ubos(struct st_context *st)
+{
+   struct gl_shader_program *prog = st->ctx->Shader.CurrentGeometryProgram;
+
+   if (!prog)
+      return;
+
+   st_bind_ubos(st, prog->_LinkedShaders[MESA_SHADER_GEOMETRY], PIPE_SHADER_GEOMETRY);
+}
 
+const struct st_tracked_state st_bind_gs_ubos = {
+   "st_bind_gs_ubos",
+   {
+      0,
+      ST_NEW_GEOMETRY_PROGRAM | ST_NEW_UNIFORM_BUFFER,
+   },
+   bind_gs_ubos
+};




More information about the mesa-commit mailing list