From 3c2c6bd1c7636793ccb5e25f05677ae02e0fdb47 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Wed, 16 Jan 2019 00:03:39 -0800 Subject: [PATCH] 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 --- src/compiler/glsl/link_varyings.h | 28 ++-------------------------- src/mesa/program/prog_parameter.h | 31 +++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 26 deletions(-) diff --git a/src/compiler/glsl/link_varyings.h b/src/compiler/glsl/link_varyings.h index e052a2b3e56..16bf1668a4c 100644 --- a/src/compiler/glsl/link_varyings.h +++ b/src/compiler/glsl/link_varyings.h @@ -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); } /** diff --git a/src/mesa/program/prog_parameter.h b/src/mesa/program/prog_parameter.h index cc551c18910..78c9909f5cc 100644 --- a/src/mesa/program/prog_parameter.h +++ b/src/mesa/program/prog_parameter.h @@ -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 -- 2.30.2