}
}
- if (shader == PIPE_SHADER_VERTEX ||
- shader == PIPE_SHADER_GEOMETRY ||
- shader == PIPE_SHADER_TESS_CTRL ||
- shader == PIPE_SHADER_TESS_EVAL) {
- /* Pass the constants to the 'draw' module */
+ switch (shader) {
+ case PIPE_SHADER_VERTEX:
+ case PIPE_SHADER_GEOMETRY:
+ case PIPE_SHADER_TESS_CTRL:
+ case PIPE_SHADER_TESS_EVAL: {
const unsigned size = cb ? cb->buffer_size : 0;
const ubyte *data = NULL;
draw_set_mapped_constant_buffer(llvmpipe->draw, shader,
index, data, size);
- } else if (shader == PIPE_SHADER_COMPUTE) {
+ break;
+ }
+ case PIPE_SHADER_COMPUTE:
llvmpipe->cs_dirty |= LP_CSNEW_CONSTANTS;
- } else {
+ break;
+ case PIPE_SHADER_FRAGMENT:
llvmpipe->dirty |= LP_NEW_FS_CONSTANTS;
+ break;
+ default:
+ unreachable("Illegal shader type");
+ break;
}
}
false, "buffer");
}
- if (shader == PIPE_SHADER_VERTEX ||
- shader == PIPE_SHADER_GEOMETRY ||
- shader == PIPE_SHADER_TESS_CTRL ||
- shader == PIPE_SHADER_TESS_EVAL) {
+ switch (shader) {
+ case PIPE_SHADER_VERTEX:
+ case PIPE_SHADER_GEOMETRY:
+ case PIPE_SHADER_TESS_CTRL:
+ case PIPE_SHADER_TESS_EVAL: {
const unsigned size = buffer ? buffer->buffer_size : 0;
const ubyte *data = NULL;
if (buffer && buffer->buffer)
data += buffer->buffer_offset;
draw_set_mapped_shader_buffer(llvmpipe->draw, shader,
i, data, size);
- } else if (shader == PIPE_SHADER_COMPUTE) {
+ break;
+ }
+ case PIPE_SHADER_COMPUTE:
llvmpipe->cs_dirty |= LP_CSNEW_SSBOS;
- } else if (shader == PIPE_SHADER_FRAGMENT) {
+ break;
+ case PIPE_SHADER_FRAGMENT:
llvmpipe->fs_ssbo_write_mask &= ~(((1 << count) - 1) << start_slot);
llvmpipe->fs_ssbo_write_mask |= writable_bitmask << start_slot;
llvmpipe->dirty |= LP_NEW_FS_SSBOS;
+ break;
+ default:
+ unreachable("Illegal shader type");
+ break;
}
}
}
}
llvmpipe->num_images[shader] = start_slot + count;
- if (shader == PIPE_SHADER_VERTEX ||
- shader == PIPE_SHADER_GEOMETRY ||
- shader == PIPE_SHADER_TESS_CTRL ||
- shader == PIPE_SHADER_TESS_EVAL) {
+ switch (shader) {
+ case PIPE_SHADER_VERTEX:
+ case PIPE_SHADER_GEOMETRY:
+ case PIPE_SHADER_TESS_CTRL:
+ case PIPE_SHADER_TESS_EVAL:
draw_set_images(llvmpipe->draw, shader, llvmpipe->images[shader],
start_slot + count);
- } else if (shader == PIPE_SHADER_COMPUTE) {
+ break;
+ case PIPE_SHADER_COMPUTE:
llvmpipe->cs_dirty |= LP_CSNEW_IMAGES;
- } else {
+ break;
+ case PIPE_SHADER_FRAGMENT:
llvmpipe->dirty |= LP_NEW_FS_IMAGES;
+ break;
+ default:
+ unreachable("Illegal shader type");
+ break;
}
if (unbind_num_trailing_slots) {
llvmpipe->num_samplers[shader] = j;
}
- if (shader == PIPE_SHADER_VERTEX ||
- shader == PIPE_SHADER_GEOMETRY ||
- shader == PIPE_SHADER_TESS_CTRL ||
- shader == PIPE_SHADER_TESS_EVAL) {
+ switch (shader) {
+ case PIPE_SHADER_VERTEX:
+ case PIPE_SHADER_GEOMETRY:
+ case PIPE_SHADER_TESS_CTRL:
+ case PIPE_SHADER_TESS_EVAL:
draw_set_samplers(llvmpipe->draw,
shader,
llvmpipe->samplers[shader],
llvmpipe->num_samplers[shader]);
- } else if (shader == PIPE_SHADER_COMPUTE) {
+ break;
+ case PIPE_SHADER_COMPUTE:
llvmpipe->cs_dirty |= LP_CSNEW_SAMPLER;
- } else {
+ break;
+ case PIPE_SHADER_FRAGMENT:
llvmpipe->dirty |= LP_NEW_SAMPLER;
+ break;
+ default:
+ unreachable("Illegal shader type");
+ break;
}
}
llvmpipe->num_sampler_views[shader] = j;
}
- if (shader == PIPE_SHADER_VERTEX ||
- shader == PIPE_SHADER_GEOMETRY ||
- shader == PIPE_SHADER_TESS_CTRL ||
- shader == PIPE_SHADER_TESS_EVAL) {
+ switch (shader) {
+ case PIPE_SHADER_VERTEX:
+ case PIPE_SHADER_GEOMETRY:
+ case PIPE_SHADER_TESS_CTRL:
+ case PIPE_SHADER_TESS_EVAL:
draw_set_sampler_views(llvmpipe->draw,
shader,
llvmpipe->sampler_views[shader],
llvmpipe->num_sampler_views[shader]);
- } else if (shader == PIPE_SHADER_COMPUTE) {
+ break;
+ case PIPE_SHADER_COMPUTE:
llvmpipe->cs_dirty |= LP_CSNEW_SAMPLER_VIEW;
- } else if (shader == PIPE_SHADER_FRAGMENT) {
+ break;
+ case PIPE_SHADER_FRAGMENT:
llvmpipe->dirty |= LP_NEW_SAMPLER_VIEW;
lp_setup_set_fragment_sampler_views(llvmpipe->setup,
llvmpipe->num_sampler_views[PIPE_SHADER_FRAGMENT],
llvmpipe->sampler_views[PIPE_SHADER_FRAGMENT]);
+ break;
+ default:
+ unreachable("Illegal shader type");
+ break;
}
}