mesa: add ARB_sparse_texture extension

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14223>
This commit is contained in:
Qiang Yu 2021-12-04 11:36:03 +08:00
parent 7f48aba641
commit e1cecd8964
8 changed files with 77 additions and 1 deletions

View File

@ -0,0 +1,50 @@
<?xml version="1.0"?>
<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
<OpenGLAPI>
<category name="GL_ARB_sparse_texture" number="158">
<function name="TexPageCommitmentARB">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
<param name="yoffset" type="GLint"/>
<param name="zoffset" type="GLint"/>
<param name="width" type="GLsizei"/>
<param name="height" type="GLsizei"/>
<param name="depth" type="GLsizei"/>
<param name="commit" type="GLboolean"/>
</function>
<!-- Only with GL_EXT_direct_state_access or GL_ARB_direct_state_access -->
<function name="TexturePageCommitmentEXT">
<param name="texture" type="GLuint"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
<param name="yoffset" type="GLint"/>
<param name="zoffset" type="GLint"/>
<param name="width" type="GLsizei"/>
<param name="height" type="GLsizei"/>
<param name="depth" type="GLsizei"/>
<param name="commit" type="GLboolean"/>
</function>
<enum name="TEXTURE_SPARSE_ARB" value="0x91A6"/>
<enum name="VIRTUAL_PAGE_SIZE_INDEX_ARB" value="0x91A7"/>
<enum name="NUM_SPARSE_LEVELS_ARB" value="0x91AA"/>
<enum name="NUM_VIRTUAL_PAGE_SIZES_ARB" value="0x91A8"/>
<enum name="VIRTUAL_PAGE_SIZE_X_ARB" value="0x9195"/>
<enum name="VIRTUAL_PAGE_SIZE_Y_ARB" value="0x9196"/>
<enum name="VIRTUAL_PAGE_SIZE_Z_ARB" value="0x9197"/>
<enum name="MAX_SPARSE_TEXTURE_SIZE_ARB" value="0x9198"/>
<enum name="MAX_SPARSE_3D_TEXTURE_SIZE_ARB" value="0x9199"/>
<enum name="MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB" value="0x919A"/>
<enum name="SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB" value="0x91A9"/>
</category>
</OpenGLAPI>

View File

@ -8362,7 +8362,11 @@
<xi:include href="ARB_indirect_parameters.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
<!-- ARB extensions 155 - 159 -->
<!-- ARB extensions 155 - 157 -->
<xi:include href="ARB_sparse_texture.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
<!-- ARB extensions 159 -->
<xi:include href="ARB_clip_control.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>

View File

@ -82,6 +82,7 @@ api_xml_files = files(
'ARB_shader_subroutine.xml',
'ARB_shader_storage_buffer_object.xml',
'ARB_sparse_buffer.xml',
'ARB_sparse_texture.xml',
'ARB_spirv_extensions.xml',
'ARB_sync.xml',
'ARB_tessellation_shader.xml',

View File

@ -1689,6 +1689,8 @@ offsets = {
"VertexAttribs2hvNV": 1653,
"VertexAttribs3hvNV": 1654,
"VertexAttribs4hvNV": 1655,
"TexPageCommitmentARB": 1656,
"TexturePageCommitmentEXT": 1657,
}
functions = [

View File

@ -142,6 +142,7 @@ EXT(ARB_shading_language_include , dummy_true
EXT(ARB_shading_language_packing , ARB_shading_language_packing , GLL, GLC, x , x , 2011)
EXT(ARB_shadow , ARB_shadow , GLL, x , x , x , 2001)
EXT(ARB_sparse_buffer , ARB_sparse_buffer , GLL, GLC, x , x , 2014)
EXT(ARB_sparse_texture , ARB_sparse_texture , GLL, GLC, x , x , 2013)
EXT(ARB_spirv_extensions , ARB_spirv_extensions , GLL, GLC, x , x , 2016)
EXT(ARB_stencil_texturing , ARB_stencil_texturing , GLL, GLC, x , x , 2012)
EXT(ARB_sync , ARB_sync , GLL, GLC, x , x , 2003)

View File

@ -4419,6 +4419,7 @@ struct gl_extensions
GLboolean ARB_shading_language_420pack;
GLboolean ARB_shadow;
GLboolean ARB_sparse_buffer;
GLboolean ARB_sparse_texture;
GLboolean ARB_stencil_texturing;
GLboolean ARB_spirv_extensions;
GLboolean ARB_sync;

View File

@ -2343,4 +2343,20 @@ _mesa_InvalidateTexImage(GLuint texture, GLint level)
return;
}
void GLAPIENTRY
_mesa_TexPageCommitmentARB(GLenum target, GLint level, GLint xoffset,
GLint yoffset, GLint zoffset, GLsizei width,
GLsizei height, GLsizei depth, GLboolean commit)
{
}
void GLAPIENTRY
_mesa_TexturePageCommitmentEXT(GLuint texture, GLint level, GLint xoffset,
GLint yoffset, GLint zoffset, GLsizei width,
GLsizei height, GLsizei depth, GLboolean commit)
{
}
/*@}*/

View File

@ -812,6 +812,7 @@ void st_init_extensions(struct pipe_screen *screen,
{ o(ARB_shader_texture_lod), PIPE_CAP_FRAGMENT_SHADER_TEXTURE_LOD },
{ o(ARB_shadow), PIPE_CAP_TEXTURE_SHADOW_MAP },
{ o(ARB_sparse_buffer), PIPE_CAP_SPARSE_BUFFER_PAGE_SIZE },
{ o(ARB_sparse_texture), PIPE_CAP_MAX_SPARSE_TEXTURE_SIZE },
{ o(ARB_spirv_extensions), PIPE_CAP_GL_SPIRV },
{ o(ARB_texture_buffer_object), PIPE_CAP_TEXTURE_BUFFER_OBJECTS },
{ o(ARB_texture_cube_map_array), PIPE_CAP_CUBE_MAP_ARRAY },