* Brian Paul
*/
-#include "main/imports.h"
+
#include "program/prog_parameter.h"
#include "program/prog_print.h"
#include "main/shaderapi.h"
/* 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
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);
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);
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);
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);
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;
&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;