In addition, append the UBO entries to stage_state->push_const_size

Signed-off-by: Abdiel Janulgue <abdiel.janul...@linux.intel.com>
---
 src/mesa/drivers/dri/i965/gen6_vs_state.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/gen6_vs_state.c 
b/src/mesa/drivers/dri/i965/gen6_vs_state.c
index 5e71a44..9b32ec2 100644
--- a/src/mesa/drivers/dri/i965/gen6_vs_state.c
+++ b/src/mesa/drivers/dri/i965/gen6_vs_state.c
@@ -59,7 +59,9 @@ gen6_upload_push_constants(struct brw_context *brw,
    struct gl_context *ctx = &brw->ctx;
 
    if (prog_data->nr_params == 0) {
-      stage_state->push_const_size = 0;
+      if (prog_data->nr_ubo_params == 0) {
+         stage_state->push_const_size = 0;
+      }
    } else {
       /* Updates the ParamaterValues[i] pointers for all parameters of the
        * basic type of PROGRAM_STATE_VAR.
@@ -130,6 +132,14 @@ gen6_upload_push_constants(struct brw_context *brw,
          stage_state->push_const_offset = brw->gather_pool.next_offset;
          brw->gather_pool.next_offset += (ALIGN(num_consts, 4) / 4) * 64;
       }
+
+      if (prog_data->nr_ubo_params > 0) {
+         stage_state->push_const_size += ALIGN(prog_data->nr_ubo_params, 8) / 
8;
+
+         uint32_t num_constants = ALIGN(prog_data->nr_ubo_params, 4) / 4;
+         stage_state->push_const_offset = brw->gather_pool.next_offset;
+         brw->gather_pool.next_offset += (ALIGN(num_constants, 4) / 4) * 64;
+      }
    }
 }
 
-- 
1.9.1

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to