mirror of https://github.com/PCSX2/pcsx2.git
gsdx ogl: load GL_EXT_direct_state_access for sparse texture
They forgot to add is to the ARB extension...
This commit is contained in:
parent
2ea47a1d96
commit
86a10969f3
|
@ -26,6 +26,7 @@
|
||||||
#ifdef __unix__
|
#ifdef __unix__
|
||||||
PFNGLBLENDFUNCSEPARATEPROC glBlendFuncSeparate = NULL;
|
PFNGLBLENDFUNCSEPARATEPROC glBlendFuncSeparate = NULL;
|
||||||
#endif
|
#endif
|
||||||
|
PFNGLTEXTUREPAGECOMMITMENTEXTPROC glTexturePageCommitmentEXT = NULL;
|
||||||
|
|
||||||
#include "PFN_GLLOADER_CPP.h"
|
#include "PFN_GLLOADER_CPP.h"
|
||||||
|
|
||||||
|
@ -382,7 +383,7 @@ namespace GLLoader {
|
||||||
|
|
||||||
static void check_sparse_compatibility()
|
static void check_sparse_compatibility()
|
||||||
{
|
{
|
||||||
if (!found_GL_ARB_sparse_texture) {
|
if (!GLExtension::Has("GL_ARB_sparse_texture") || !GLExtension::Has("GL_EXT_direct_state_access")) {
|
||||||
found_compatible_GL_ARB_sparse_texture2 = false;
|
found_compatible_GL_ARB_sparse_texture2 = false;
|
||||||
found_compatible_sparse_depth = false;
|
found_compatible_sparse_depth = false;
|
||||||
|
|
||||||
|
@ -390,7 +391,7 @@ namespace GLLoader {
|
||||||
}
|
}
|
||||||
|
|
||||||
found_compatible_GL_ARB_sparse_texture2 = true;
|
found_compatible_GL_ARB_sparse_texture2 = true;
|
||||||
if (!found_GL_ARB_sparse_texture2) {
|
if (!GLExtension::Has("GL_ARB_sparse_texture2")) {
|
||||||
// Only check format from GSTextureOGL
|
// Only check format from GSTextureOGL
|
||||||
found_compatible_GL_ARB_sparse_texture2 &= is_sparse2_compatible("GL_R8", GL_R8, 256, 256);
|
found_compatible_GL_ARB_sparse_texture2 &= is_sparse2_compatible("GL_R8", GL_R8, 256, 256);
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,35 @@
|
||||||
// FIX compilation issue with Mesa 10
|
// FIX compilation issue with Mesa 10
|
||||||
#include "glext_extra.h"
|
#include "glext_extra.h"
|
||||||
|
|
||||||
|
/*************************************************************
|
||||||
|
* Extra define not provided in glcorearb.h
|
||||||
|
* Currently they are included in the legacy glext.h but the plan
|
||||||
|
* is to move to core only OpenGL
|
||||||
|
************************************************************/
|
||||||
|
|
||||||
|
// Extension not in core profile. It will become irrelevant with sparse texture
|
||||||
|
#ifndef GL_TEXTURE_FREE_MEMORY_ATI
|
||||||
|
#define GL_TEXTURE_FREE_MEMORY_ATI 0x87FC
|
||||||
|
#endif
|
||||||
|
#ifndef GL_NVX_gpu_memory_info
|
||||||
|
#define GL_NVX_gpu_memory_info 1
|
||||||
|
#define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047
|
||||||
|
#define GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048
|
||||||
|
#define GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049
|
||||||
|
#define GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX 0x904A
|
||||||
|
#define GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX 0x904B
|
||||||
|
#endif /* GL_NVX_gpu_memory_info */
|
||||||
|
|
||||||
|
// Added in GL4.6. Code should be updated but driver support...
|
||||||
|
#ifndef GL_TEXTURE_MAX_ANISOTROPY_EXT
|
||||||
|
#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Believe me or not, they forgot to add the interaction with DSA...
|
||||||
|
#ifndef GL_EXT_direct_state_access
|
||||||
|
typedef void (APIENTRYP PFNGLTEXTUREPAGECOMMITMENTEXTPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
|
||||||
|
#endif
|
||||||
|
|
||||||
// ********************** End of the extra header ******************* //
|
// ********************** End of the extra header ******************* //
|
||||||
|
|
||||||
// #define ENABLE_GL_ARB_ES3_2_compatibility 1
|
// #define ENABLE_GL_ARB_ES3_2_compatibility 1
|
||||||
|
@ -53,7 +82,7 @@
|
||||||
// #define ENABLE_GL_ARB_sample_shading 1
|
// #define ENABLE_GL_ARB_sample_shading 1
|
||||||
// #define ENABLE_GL_ARB_shading_language_include 1
|
// #define ENABLE_GL_ARB_shading_language_include 1
|
||||||
// #define ENABLE_GL_ARB_sparse_buffer 1
|
// #define ENABLE_GL_ARB_sparse_buffer 1
|
||||||
// #define ENABLE_GL_ARB_sparse_texture 1
|
#define ENABLE_GL_ARB_sparse_texture 1
|
||||||
// #define ENABLE_GL_ARB_texture_buffer_object 1
|
// #define ENABLE_GL_ARB_texture_buffer_object 1
|
||||||
// #define ENABLE_GL_KHR_blend_equation_advanced 1
|
// #define ENABLE_GL_KHR_blend_equation_advanced 1
|
||||||
// #define ENABLE_GL_KHR_parallel_shader_compile 1
|
// #define ENABLE_GL_KHR_parallel_shader_compile 1
|
||||||
|
@ -88,33 +117,10 @@
|
||||||
#ifdef __unix__
|
#ifdef __unix__
|
||||||
extern PFNGLBLENDFUNCSEPARATEPROC glBlendFuncSeparate;
|
extern PFNGLBLENDFUNCSEPARATEPROC glBlendFuncSeparate;
|
||||||
#endif
|
#endif
|
||||||
|
extern PFNGLTEXTUREPAGECOMMITMENTEXTPROC glTexturePageCommitmentEXT;
|
||||||
|
|
||||||
#include "PFN_GLLOADER_HPP.h"
|
#include "PFN_GLLOADER_HPP.h"
|
||||||
|
|
||||||
/*************************************************************
|
|
||||||
* Extra define not provided in glcorearb.h
|
|
||||||
* Currently they are included in the legacy glext.h but the plan
|
|
||||||
* is to move to core only OpenGL
|
|
||||||
************************************************************/
|
|
||||||
|
|
||||||
// Extension not in core profile. It will become irrelevant with sparse texture
|
|
||||||
#ifndef GL_TEXTURE_FREE_MEMORY_ATI
|
|
||||||
#define GL_TEXTURE_FREE_MEMORY_ATI 0x87FC
|
|
||||||
#endif
|
|
||||||
#ifndef GL_NVX_gpu_memory_info
|
|
||||||
#define GL_NVX_gpu_memory_info 1
|
|
||||||
#define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047
|
|
||||||
#define GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048
|
|
||||||
#define GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049
|
|
||||||
#define GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX 0x904A
|
|
||||||
#define GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX 0x904B
|
|
||||||
#endif /* GL_NVX_gpu_memory_info */
|
|
||||||
|
|
||||||
// Added in GL4.6. Code should be updated but driver support...
|
|
||||||
#ifndef GL_TEXTURE_MAX_ANISOTROPY_EXT
|
|
||||||
#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace GLExtension {
|
namespace GLExtension {
|
||||||
extern bool Has(const std::string& ext);
|
extern bool Has(const std::string& ext);
|
||||||
extern void Set(const std::string& ext, bool v = true);
|
extern void Set(const std::string& ext, bool v = true);
|
||||||
|
|
|
@ -36,6 +36,7 @@ void GSWndGL::PopulateGlFunction()
|
||||||
#ifdef __unix__
|
#ifdef __unix__
|
||||||
GL_EXT_LOAD(glBlendFuncSeparate);
|
GL_EXT_LOAD(glBlendFuncSeparate);
|
||||||
#endif
|
#endif
|
||||||
|
GL_EXT_LOAD(glTexturePageCommitmentEXT);
|
||||||
|
|
||||||
// Check openGL requirement as soon as possible so we can switch to another
|
// Check openGL requirement as soon as possible so we can switch to another
|
||||||
// renderer/device
|
// renderer/device
|
||||||
|
|
Loading…
Reference in New Issue