i965: add support for force_gl_vendor
[mesa.git] / src / mesa / state_tracker / st_atom_constbuf.c
index 6455e612e4ee556f02f57348021c01cda91a5741..2b5cc547ec52ba80780e0b6de87e2f05d9f82e69 100644 (file)
@@ -31,7 +31,7 @@
  *   Brian Paul
  */
 
-#include "main/imports.h"
+
 #include "program/prog_parameter.h"
 #include "program/prog_print.h"
 #include "main/shaderapi.h"
@@ -92,7 +92,7 @@ st_upload_constants(struct st_context *st, struct gl_program *prog)
    /* update constants */
    if (params && params->NumParameters) {
       struct pipe_constant_buffer cb;
-      const uint paramBytes = params->NumParameters * sizeof(GLfloat) * 4;
+      const uint paramBytes = params->NumParameterValues * sizeof(GLfloat);
 
       /* Update the constants which come from fixed-function state, such as
        * transformation matrices, fog factors, etc.  The rest of the values in
@@ -155,7 +155,7 @@ st_update_fs_constants(struct st_context *st)
 void
 st_update_gs_constants(struct st_context *st)
 {
-   struct st_common_program *gp = st->gp;
+   struct st_program *gp = st->gp;
 
    if (gp)
       st_upload_constants(st, &gp->Base);
@@ -166,7 +166,7 @@ st_update_gs_constants(struct st_context *st)
 void
 st_update_tcs_constants(struct st_context *st)
 {
-   struct st_common_program *tcp = st->tcp;
+   struct st_program *tcp = st->tcp;
 
    if (tcp)
       st_upload_constants(st, &tcp->Base);
@@ -177,7 +177,7 @@ st_update_tcs_constants(struct st_context *st)
 void
 st_update_tes_constants(struct st_context *st)
 {
-   struct st_common_program *tep = st->tep;
+   struct st_program *tep = st->tep;
 
    if (tep)
       st_upload_constants(st, &tep->Base);
@@ -188,7 +188,7 @@ st_update_tes_constants(struct st_context *st)
 void
 st_update_cs_constants(struct st_context *st)
 {
-   struct st_compute_program *cp = st->cp;
+   struct st_program *cp = st->cp;
 
    if (cp)
       st_upload_constants(st, &cp->Base);
@@ -204,7 +204,7 @@ st_bind_ubos(struct st_context *st, struct gl_program *prog,
    if (!prog)
       return;
 
-   for (i = 0; i < prog->info.num_ubos; i++) {
+   for (i = 0; i < prog->sh.NumUniformBlocks; i++) {
       struct gl_buffer_binding *binding;
       struct st_buffer_object *st_obj;
 
@@ -212,7 +212,7 @@ st_bind_ubos(struct st_context *st, struct gl_program *prog,
          &st->ctx->UniformBufferBindings[prog->sh.UniformBlocks[i]->Binding];
       st_obj = st_buffer_object(binding->BufferObject);
 
-      cb.buffer = st_obj->buffer;
+      cb.buffer = st_obj ? st_obj->buffer : NULL;
 
       if (cb.buffer) {
          cb.buffer_offset = binding->Offset;