Add support for ARB_gpu_shader_fp64
GLSL Version : >= 150 Purpose: Allow users to use features by enabling this extension, even in low versions. Extension Name: ARB_gpu_shader_fp64 Builtin-variables: Nah Builtin-functions: functions overloaded for this extension, please check registry in reference. Keywords: Double Features: add support for type "double" Reference: https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_gpu_shader_fp64.txt Add support for implicit conversion 1. Remove builtin double vertex (this is introduced by vertex_attrib_64bit 2. Add extension check and implicit conversion as double has been introduced 3. Add test results.
This commit is contained in:
parent
6334d594f6
commit
a3c7a25e10
11 changed files with 138 additions and 60 deletions
|
|
@ -184,6 +184,7 @@ void TParseVersions::initializeExtensionBehavior()
|
|||
extensionBehavior[E_GL_ARB_shader_texture_image_samples] = EBhDisable;
|
||||
extensionBehavior[E_GL_ARB_viewport_array] = EBhDisable;
|
||||
extensionBehavior[E_GL_ARB_gpu_shader_int64] = EBhDisable;
|
||||
extensionBehavior[E_GL_ARB_gpu_shader_fp64] = EBhDisable;
|
||||
extensionBehavior[E_GL_ARB_shader_ballot] = EBhDisable;
|
||||
extensionBehavior[E_GL_ARB_sparse_texture2] = EBhDisable;
|
||||
extensionBehavior[E_GL_ARB_sparse_texture_clamp] = EBhDisable;
|
||||
|
|
@ -394,6 +395,7 @@ void TParseVersions::getPreamble(std::string& preamble)
|
|||
"#define GL_ARB_shader_texture_image_samples 1\n"
|
||||
"#define GL_ARB_viewport_array 1\n"
|
||||
"#define GL_ARB_gpu_shader_int64 1\n"
|
||||
"#define GL_ARB_gpu_shader_fp64 1\n"
|
||||
"#define GL_ARB_shader_ballot 1\n"
|
||||
"#define GL_ARB_sparse_texture2 1\n"
|
||||
"#define GL_ARB_sparse_texture_clamp 1\n"
|
||||
|
|
@ -923,10 +925,11 @@ void TParseVersions::fullIntegerCheck(const TSourceLoc& loc, const char* op)
|
|||
}
|
||||
|
||||
// Call for any operation needing GLSL double data-type support.
|
||||
void TParseVersions::doubleCheck(const TSourceLoc& loc, const char* op)
|
||||
void TParseVersions::doubleCheck(const TSourceLoc& loc, const char* op, bool builtIn)
|
||||
{
|
||||
requireProfile(loc, ECoreProfile | ECompatibilityProfile, op);
|
||||
profileRequires(loc, ECoreProfile | ECompatibilityProfile, 400, nullptr, op);
|
||||
if (!builtIn)
|
||||
profileRequires(loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader_fp64, op);
|
||||
}
|
||||
|
||||
// Call for any operation needing GLSL float16 data-type support.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue