Browse Source

mesa: Minor clean ups in _mesa_uniform

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
tags/10.4-branchpoint
Ian Romanick 11 years ago
parent
commit
23dcbf623f
1 changed files with 9 additions and 23 deletions
  1. 9
    23
      src/mesa/main/uniform_query.cpp

+ 9
- 23
src/mesa/main/uniform_query.cpp View File

@@ -587,7 +587,6 @@ _mesa_uniform(struct gl_context *ctx, struct gl_shader_program *shProg,
unsigned src_components)
{
unsigned offset;
unsigned components;

struct gl_uniform_storage *const uni =
validate_uniform_parameters(ctx, shProg, location, count,
@@ -597,11 +596,8 @@ _mesa_uniform(struct gl_context *ctx, struct gl_shader_program *shProg,

/* Verify that the types are compatible.
*/
if (uni->type->is_sampler()) {
components = 1;
} else {
components = uni->type->vector_elements;
}
const unsigned components = uni->type->is_sampler()
? 1 : uni->type->vector_elements;

bool match;
switch (uni->type->base_type) {
@@ -645,9 +641,7 @@ _mesa_uniform(struct gl_context *ctx, struct gl_shader_program *shProg,
* GL_INVALID_VALUE error and ignore the command.
*/
if (uni->type->is_sampler()) {
int i;

for (i = 0; i < count; i++) {
for (int i = 0; i < count; i++) {
const unsigned texUnit = ((unsigned *) values)[i];

/* check that the sampler (tex unit index) is legal */
@@ -662,9 +656,7 @@ _mesa_uniform(struct gl_context *ctx, struct gl_shader_program *shProg,
}

if (uni->type->is_image()) {
int i;

for (i = 0; i < count; i++) {
for (int i = 0; i < count; i++) {
const int unit = ((GLint *) values)[i];

/* check that the image unit is legal */
@@ -704,9 +696,8 @@ _mesa_uniform(struct gl_context *ctx, struct gl_shader_program *shProg,
(const union gl_constant_value *) values;
union gl_constant_value *dst = &uni->storage[components * offset];
const unsigned elems = components * count;
unsigned i;

for (i = 0; i < elems; i++) {
for (unsigned i = 0; i < elems; i++) {
if (basicType == GLSL_TYPE_FLOAT) {
dst[i].i = src[i].f != 0.0f ? ctx->Const.UniformBooleanTrue : 0;
} else {
@@ -723,19 +714,16 @@ _mesa_uniform(struct gl_context *ctx, struct gl_shader_program *shProg,
* the changes through.
*/
if (uni->type->is_sampler()) {
int i;

bool flushed = false;
for (i = 0; i < MESA_SHADER_STAGES; i++) {
for (int i = 0; i < MESA_SHADER_STAGES; i++) {
struct gl_shader *const sh = shProg->_LinkedShaders[i];
int j;

/* If the shader stage doesn't use the sampler uniform, skip this.
*/
if (sh == NULL || !uni->sampler[i].active)
continue;

for (j = 0; j < count; j++) {
for (int j = 0; j < count; j++) {
sh->SamplerUnits[uni->sampler[i].index + offset + j] =
((unsigned *) values)[j];
}
@@ -777,13 +765,11 @@ _mesa_uniform(struct gl_context *ctx, struct gl_shader_program *shProg,
* uniforms to image units present in the shader data structure.
*/
if (uni->type->is_image()) {
int i, j;

for (i = 0; i < MESA_SHADER_STAGES; i++) {
for (int i = 0; i < MESA_SHADER_STAGES; i++) {
if (uni->image[i].active) {
struct gl_shader *sh = shProg->_LinkedShaders[i];

for (j = 0; j < count; j++)
for (int j = 0; j < count; j++)
sh->ImageUnits[uni->image[i].index + offset + j] =
((GLint *) values)[j];
}

Loading…
Cancel
Save