compiler: Make is_64bit(GL_*) helper more broadly available

I'd like to use this in the prog_parameter.c code, so I need to move it
into C, make it non-static, and so on.  This probably isn't the ideal
place for it, but I couldn't think of a better one.

Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
Kenneth Graunke 2019-01-16 00:03:39 -08:00
parent daf8ada08d
commit 3c2c6bd1c7
2 changed files with 33 additions and 26 deletions

View File

@ -33,6 +33,7 @@
#include "main/glheader.h"
#include "program/prog_parameter.h"
struct gl_shader_program;
@ -161,32 +162,7 @@ private:
bool is_64bit() const
{
switch (this->type) {
case GL_DOUBLE:
case GL_DOUBLE_VEC2:
case GL_DOUBLE_VEC3:
case GL_DOUBLE_VEC4:
case GL_DOUBLE_MAT2:
case GL_DOUBLE_MAT2x3:
case GL_DOUBLE_MAT2x4:
case GL_DOUBLE_MAT3:
case GL_DOUBLE_MAT3x2:
case GL_DOUBLE_MAT3x4:
case GL_DOUBLE_MAT4:
case GL_DOUBLE_MAT4x2:
case GL_DOUBLE_MAT4x3:
case GL_INT64_ARB:
case GL_INT64_VEC2_ARB:
case GL_INT64_VEC3_ARB:
case GL_INT64_VEC4_ARB:
case GL_UNSIGNED_INT64_ARB:
case GL_UNSIGNED_INT64_VEC2_ARB:
case GL_UNSIGNED_INT64_VEC3_ARB:
case GL_UNSIGNED_INT64_VEC4_ARB:
return true;
default:
return false;
}
return _mesa_gl_datatype_is_64bit(this->type);
}
/**

View File

@ -185,6 +185,37 @@ _mesa_lookup_parameter_index(const struct gl_program_parameter_list *paramList,
return -1;
}
static inline bool
_mesa_gl_datatype_is_64bit(GLenum datatype)
{
switch (datatype) {
case GL_DOUBLE:
case GL_DOUBLE_VEC2:
case GL_DOUBLE_VEC3:
case GL_DOUBLE_VEC4:
case GL_DOUBLE_MAT2:
case GL_DOUBLE_MAT2x3:
case GL_DOUBLE_MAT2x4:
case GL_DOUBLE_MAT3:
case GL_DOUBLE_MAT3x2:
case GL_DOUBLE_MAT3x4:
case GL_DOUBLE_MAT4:
case GL_DOUBLE_MAT4x2:
case GL_DOUBLE_MAT4x3:
case GL_INT64_ARB:
case GL_INT64_VEC2_ARB:
case GL_INT64_VEC3_ARB:
case GL_INT64_VEC4_ARB:
case GL_UNSIGNED_INT64_ARB:
case GL_UNSIGNED_INT64_VEC2_ARB:
case GL_UNSIGNED_INT64_VEC3_ARB:
case GL_UNSIGNED_INT64_VEC4_ARB:
return true;
default:
return false;
}
}
#ifdef __cplusplus
}
#endif