vector_elements(vector_elements), matrix_columns(matrix_columns),
length(0)
{
+ /* Values of these types must fit in the two bits of
+ * glsl_type::sampled_type.
+ */
+ STATIC_ASSERT((unsigned(GLSL_TYPE_UINT) & 3) == unsigned(GLSL_TYPE_UINT));
+ STATIC_ASSERT((unsigned(GLSL_TYPE_INT) & 3) == unsigned(GLSL_TYPE_INT));
+ STATIC_ASSERT((unsigned(GLSL_TYPE_FLOAT) & 3) == unsigned(GLSL_TYPE_FLOAT));
+
mtx_lock(&glsl_type::mutex);
init_ralloc_type_ctx();
const glsl_type *const key2 = (glsl_type *) b;
if (key1->length != key2->length)
- return 1;
+ return false;
return memcmp(key1->fields.parameters, key2->fields.parameters,
(key1->length + 1) * sizeof(*key1->fields.parameters)) == 0;
unsigned
glsl_type::std140_base_alignment(bool row_major) const
{
- unsigned N = is_double() ? 8 : 4;
+ unsigned N = is_64bit() ? 8 : 4;
/* (1) If the member is a scalar consuming <N> basic machine units, the
* base alignment is <N>.
unsigned
glsl_type::std140_size(bool row_major) const
{
- unsigned N = is_double() ? 8 : 4;
+ unsigned N = is_64bit() ? 8 : 4;
/* (1) If the member is a scalar consuming <N> basic machine units, the
* base alignment is <N>.
glsl_type::std430_base_alignment(bool row_major) const
{
- unsigned N = is_double() ? 8 : 4;
+ unsigned N = is_64bit() ? 8 : 4;
/* (1) If the member is a scalar consuming <N> basic machine units, the
* base alignment is <N>.
unsigned
glsl_type::std430_array_stride(bool row_major) const
{
- unsigned N = is_double() ? 8 : 4;
+ unsigned N = is_64bit() ? 8 : 4;
/* Notice that the array stride of a vec3 is not 3 * N but 4 * N.
* See OpenGL 4.30 spec, section 7.6.2.2 "Standard Uniform Block Layout"
unsigned
glsl_type::std430_size(bool row_major) const
{
- unsigned N = is_double() ? 8 : 4;
+ unsigned N = is_64bit() ? 8 : 4;
/* OpenGL 4.30 spec, section 7.6.2.2 "Standard Uniform Block Layout":
*