[Mesa-dev] [PATCH 2/2] glsl: use is_sampler() anywhere it's possible
Samuel Pitoiset
samuel.pitoiset at gmail.com
Fri Feb 24 13:40:21 UTC 2017
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
---
src/compiler/glsl/ast_to_hir.cpp | 22 +++++++++++-----------
src/compiler/glsl/ir.cpp | 4 ++--
src/compiler/glsl/link_uniform_initializers.cpp | 3 +--
src/compiler/glsl_types.cpp | 2 +-
src/mesa/main/uniform_query.cpp | 2 +-
5 files changed, 16 insertions(+), 17 deletions(-)
diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp
index c0629feb58..f033d7df97 100644
--- a/src/compiler/glsl/ast_to_hir.cpp
+++ b/src/compiler/glsl/ast_to_hir.cpp
@@ -2407,13 +2407,13 @@ get_type_name_for_precision_qualifier(const glsl_type *type)
case GLSL_TYPE_SAMPLER: {
const unsigned type_idx =
type->sampler_array + 2 * type->sampler_shadow;
- const unsigned offset = type->base_type == GLSL_TYPE_SAMPLER ? 0 : 4;
+ const unsigned offset = type->is_sampler() ? 0 : 4;
assert(type_idx < 4);
switch (type->sampled_type) {
case GLSL_TYPE_FLOAT:
switch (type->sampler_dimensionality) {
case GLSL_SAMPLER_DIM_1D: {
- assert(type->base_type == GLSL_TYPE_SAMPLER);
+ assert(type->is_sampler());
static const char *const names[4] = {
"sampler1D", "sampler1DArray",
"sampler1DShadow", "sampler1DArrayShadow"
@@ -2444,14 +2444,14 @@ get_type_name_for_precision_qualifier(const glsl_type *type)
return names[offset + type_idx];
}
case GLSL_SAMPLER_DIM_MS: {
- assert(type->base_type == GLSL_TYPE_SAMPLER);
+ assert(type->is_sampler());
static const char *const names[4] = {
"sampler2DMS", "sampler2DMSArray", NULL, NULL
};
return names[type_idx];
}
case GLSL_SAMPLER_DIM_RECT: {
- assert(type->base_type == GLSL_TYPE_SAMPLER);
+ assert(type->is_sampler());
static const char *const names[4] = {
"samplerRect", NULL, "samplerRectShadow", NULL
};
@@ -2465,7 +2465,7 @@ get_type_name_for_precision_qualifier(const glsl_type *type)
return names[offset + type_idx];
}
case GLSL_SAMPLER_DIM_EXTERNAL: {
- assert(type->base_type == GLSL_TYPE_SAMPLER);
+ assert(type->is_sampler());
static const char *const names[4] = {
"samplerExternalOES", NULL, NULL, NULL
};
@@ -2478,7 +2478,7 @@ get_type_name_for_precision_qualifier(const glsl_type *type)
case GLSL_TYPE_INT:
switch (type->sampler_dimensionality) {
case GLSL_SAMPLER_DIM_1D: {
- assert(type->base_type == GLSL_TYPE_SAMPLER);
+ assert(type->is_sampler());
static const char *const names[4] = {
"isampler1D", "isampler1DArray", NULL, NULL
};
@@ -2506,14 +2506,14 @@ get_type_name_for_precision_qualifier(const glsl_type *type)
return names[offset + type_idx];
}
case GLSL_SAMPLER_DIM_MS: {
- assert(type->base_type == GLSL_TYPE_SAMPLER);
+ assert(type->is_sampler());
static const char *const names[4] = {
"isampler2DMS", "isampler2DMSArray", NULL, NULL
};
return names[type_idx];
}
case GLSL_SAMPLER_DIM_RECT: {
- assert(type->base_type == GLSL_TYPE_SAMPLER);
+ assert(type->is_sampler());
static const char *const names[4] = {
"isamplerRect", NULL, "isamplerRectShadow", NULL
};
@@ -2533,7 +2533,7 @@ get_type_name_for_precision_qualifier(const glsl_type *type)
case GLSL_TYPE_UINT:
switch (type->sampler_dimensionality) {
case GLSL_SAMPLER_DIM_1D: {
- assert(type->base_type == GLSL_TYPE_SAMPLER);
+ assert(type->is_sampler());
static const char *const names[4] = {
"usampler1D", "usampler1DArray", NULL, NULL
};
@@ -2561,14 +2561,14 @@ get_type_name_for_precision_qualifier(const glsl_type *type)
return names[offset + type_idx];
}
case GLSL_SAMPLER_DIM_MS: {
- assert(type->base_type == GLSL_TYPE_SAMPLER);
+ assert(type->is_sampler());
static const char *const names[4] = {
"usampler2DMS", "usampler2DMSArray", NULL, NULL
};
return names[type_idx];
}
case GLSL_SAMPLER_DIM_RECT: {
- assert(type->base_type == GLSL_TYPE_SAMPLER);
+ assert(type->is_sampler());
static const char *const names[4] = {
"usamplerRect", NULL, "usamplerRectShadow", NULL
};
diff --git a/src/compiler/glsl/ir.cpp b/src/compiler/glsl/ir.cpp
index 28511b5b81..f80bd811ac 100644
--- a/src/compiler/glsl/ir.cpp
+++ b/src/compiler/glsl/ir.cpp
@@ -1501,7 +1501,7 @@ ir_texture::set_sampler(ir_dereference *sampler, const glsl_type *type)
assert(type->base_type == GLSL_TYPE_FLOAT);
} else if (this->op == ir_samples_identical) {
assert(type == glsl_type::bool_type);
- assert(sampler->type->base_type == GLSL_TYPE_SAMPLER);
+ assert(sampler->type->is_sampler());
assert(sampler->type->sampler_dimensionality == GLSL_SAMPLER_DIM_MS);
} else {
assert(sampler->type->sampled_type == (int) type->base_type);
@@ -1738,7 +1738,7 @@ ir_variable::ir_variable(const struct glsl_type *type, const char *name,
this->data.fb_fetch_output = false;
if (type != NULL) {
- if (type->base_type == GLSL_TYPE_SAMPLER)
+ if (type->is_sampler())
this->data.read_only = true;
if (type->is_interface())
diff --git a/src/compiler/glsl/link_uniform_initializers.cpp b/src/compiler/glsl/link_uniform_initializers.cpp
index 7e5b80d5c7..8911c3de62 100644
--- a/src/compiler/glsl/link_uniform_initializers.cpp
+++ b/src/compiler/glsl/link_uniform_initializers.cpp
@@ -132,8 +132,7 @@ set_opaque_binding(void *mem_ctx, gl_shader_program *prog,
gl_linked_shader *shader = prog->_LinkedShaders[sh];
if (shader) {
- if (storage->type->base_type == GLSL_TYPE_SAMPLER &&
- storage->opaque[sh].active) {
+ if (storage->type->is_sampler() && storage->opaque[sh].active) {
for (unsigned i = 0; i < elements; i++) {
const unsigned index = storage->opaque[sh].index + i;
shader->Program->SamplerUnits[index] =
diff --git a/src/compiler/glsl_types.cpp b/src/compiler/glsl_types.cpp
index 7cbb21112f..4b7472eb84 100644
--- a/src/compiler/glsl_types.cpp
+++ b/src/compiler/glsl_types.cpp
@@ -95,7 +95,7 @@ glsl_type::glsl_type(GLenum gl_type, glsl_base_type base_type,
memset(& fields, 0, sizeof(fields));
- if (base_type == GLSL_TYPE_SAMPLER) {
+ if (is_sampler()) {
/* Samplers take no storage whatsoever. */
matrix_columns = vector_elements = 0;
} else {
diff --git a/src/mesa/main/uniform_query.cpp b/src/mesa/main/uniform_query.cpp
index 010a7b24b1..4d06313565 100644
--- a/src/mesa/main/uniform_query.cpp
+++ b/src/mesa/main/uniform_query.cpp
@@ -355,7 +355,7 @@ _mesa_get_uniform(struct gl_context *ctx, GLuint program, GLint location,
&&
(uni->type->base_type == GLSL_TYPE_INT
|| uni->type->base_type == GLSL_TYPE_UINT
- || uni->type->base_type == GLSL_TYPE_SAMPLER
+ || uni->type->is_sampler()
|| uni->type->is_image()))
|| ((returnType == GLSL_TYPE_UINT64 ||
returnType == GLSL_TYPE_INT64 ) &&
--
2.11.1
More information about the mesa-dev
mailing list