mesa: implement ARB_texture_storage_multisample + EXT_dsa functions
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
parent
a0d667036d
commit
bb2241bf06
|
@ -386,7 +386,7 @@ GL_EXT_direct_state_access additions from other extensions (complete list):
|
||||||
GL_ARB_sparse_buffer not started
|
GL_ARB_sparse_buffer not started
|
||||||
GL_ARB_texture_buffer_range DONE
|
GL_ARB_texture_buffer_range DONE
|
||||||
GL_ARB_texture_storage DONE
|
GL_ARB_texture_storage DONE
|
||||||
GL_ARB_texture_storage_multisample not started
|
GL_ARB_texture_storage_multisample DONE
|
||||||
GL_ARB_vertex_attrib_64bit DONE
|
GL_ARB_vertex_attrib_64bit DONE
|
||||||
GL_ARB_vertex_attrib_binding DONE
|
GL_ARB_vertex_attrib_binding DONE
|
||||||
GL_EXT_buffer_storage DONE
|
GL_EXT_buffer_storage DONE
|
||||||
|
|
|
@ -26,6 +26,27 @@
|
||||||
<param name="fixedsamplelocations" type="GLboolean"/>
|
<param name="fixedsamplelocations" type="GLboolean"/>
|
||||||
</function>
|
</function>
|
||||||
|
|
||||||
|
<function name="TextureStorage2DMultisampleEXT">
|
||||||
|
<param name="texture" type="GLuint"/>
|
||||||
|
<param name="target" type="GLenum"/>
|
||||||
|
<param name="samples" type="GLsizei"/>
|
||||||
|
<param name="internalformat" type="GLenum"/>
|
||||||
|
<param name="width" type="GLsizei"/>
|
||||||
|
<param name="height" type="GLsizei"/>
|
||||||
|
<param name="fixedsamplelocations" type="GLboolean"/>
|
||||||
|
</function>
|
||||||
|
|
||||||
|
<function name="TextureStorage3DMultisampleEXT">
|
||||||
|
<param name="texture" type="GLuint"/>
|
||||||
|
<param name="target" type="GLenum"/>
|
||||||
|
<param name="samples" type="GLsizei"/>
|
||||||
|
<param name="internalformat" type="GLenum"/>
|
||||||
|
<param name="width" type="GLsizei"/>
|
||||||
|
<param name="height" type="GLsizei"/>
|
||||||
|
<param name="depth" type="GLsizei"/>
|
||||||
|
<param name="fixedsamplelocations" type="GLboolean"/>
|
||||||
|
</function>
|
||||||
|
|
||||||
</category>
|
</category>
|
||||||
|
|
||||||
</OpenGLAPI>
|
</OpenGLAPI>
|
||||||
|
|
|
@ -1623,6 +1623,8 @@ offsets = {
|
||||||
"VertexArrayVertexAttribLOffsetEXT": 1587,
|
"VertexArrayVertexAttribLOffsetEXT": 1587,
|
||||||
"VertexArrayVertexAttribDivisorEXT": 1588,
|
"VertexArrayVertexAttribDivisorEXT": 1588,
|
||||||
"TextureBufferRangeEXT": 1589,
|
"TextureBufferRangeEXT": 1589,
|
||||||
|
"TextureStorage2DMultisampleEXT": 1590,
|
||||||
|
"TextureStorage3DMultisampleEXT": 1591,
|
||||||
}
|
}
|
||||||
|
|
||||||
functions = [
|
functions = [
|
||||||
|
|
|
@ -897,8 +897,8 @@ const struct function common_desktop_functions_possible[] = {
|
||||||
{ "glTextureBufferRangeEXT", 43, -1 },
|
{ "glTextureBufferRangeEXT", 43, -1 },
|
||||||
{ "glTexStorage2DMultisample", 43, -1 },
|
{ "glTexStorage2DMultisample", 43, -1 },
|
||||||
{ "glTexStorage3DMultisample", 43, -1 },
|
{ "glTexStorage3DMultisample", 43, -1 },
|
||||||
// { "glTextureStorage2DMultisampleEXT", 43, -1 }, // XXX: Add to xml
|
{ "glTextureStorage2DMultisampleEXT", 43, -1 },
|
||||||
// { "glTextureStorage3DMultisampleEXT", 43, -1 }, // XXX: Add to xml
|
{ "glTextureStorage3DMultisampleEXT", 43, -1 },
|
||||||
|
|
||||||
{ "glViewportArrayv", 43, -1 },
|
{ "glViewportArrayv", 43, -1 },
|
||||||
{ "glViewportIndexedf", 43, -1 },
|
{ "glViewportIndexedf", 43, -1 },
|
||||||
|
|
|
@ -6930,6 +6930,52 @@ _mesa_TextureStorage3DMultisample(GLuint texture, GLsizei samples,
|
||||||
"glTextureStorage3DMultisample");
|
"glTextureStorage3DMultisample");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GLAPIENTRY
|
||||||
|
_mesa_TextureStorage2DMultisampleEXT(GLuint texture, GLenum target, GLsizei samples,
|
||||||
|
GLenum internalformat, GLsizei width,
|
||||||
|
GLsizei height,
|
||||||
|
GLboolean fixedsamplelocations)
|
||||||
|
{
|
||||||
|
struct gl_texture_object *texObj;
|
||||||
|
GET_CURRENT_CONTEXT(ctx);
|
||||||
|
|
||||||
|
texObj = lookup_texture_ext_dsa(ctx, target, texture,
|
||||||
|
"glTextureStorage2DMultisampleEXT");
|
||||||
|
if (!texObj)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!valid_texstorage_ms_parameters(width, height, 1, 2))
|
||||||
|
return;
|
||||||
|
|
||||||
|
texture_image_multisample(ctx, 2, texObj, NULL, texObj->Target,
|
||||||
|
samples, internalformat, width, height, 1,
|
||||||
|
fixedsamplelocations, GL_TRUE, 0,
|
||||||
|
"glTextureStorage2DMultisampleEXT");
|
||||||
|
}
|
||||||
|
|
||||||
|
void GLAPIENTRY
|
||||||
|
_mesa_TextureStorage3DMultisampleEXT(GLuint texture, GLenum target, GLsizei samples,
|
||||||
|
GLenum internalformat, GLsizei width,
|
||||||
|
GLsizei height, GLsizei depth,
|
||||||
|
GLboolean fixedsamplelocations)
|
||||||
|
{
|
||||||
|
struct gl_texture_object *texObj;
|
||||||
|
GET_CURRENT_CONTEXT(ctx);
|
||||||
|
|
||||||
|
texObj = lookup_texture_ext_dsa(ctx, target, texture,
|
||||||
|
"glTextureStorage3DMultisampleEXT");
|
||||||
|
if (!texObj)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!valid_texstorage_ms_parameters(width, height, depth, 3))
|
||||||
|
return;
|
||||||
|
|
||||||
|
texture_image_multisample(ctx, 3, texObj, NULL, texObj->Target, samples,
|
||||||
|
internalformat, width, height, depth,
|
||||||
|
fixedsamplelocations, GL_TRUE, 0,
|
||||||
|
"glTextureStorage3DMultisampleEXT");
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
_mesa_texture_storage_ms_memory(struct gl_context *ctx, GLuint dims,
|
_mesa_texture_storage_ms_memory(struct gl_context *ctx, GLuint dims,
|
||||||
struct gl_texture_object *texObj,
|
struct gl_texture_object *texObj,
|
||||||
|
|
|
@ -837,6 +837,18 @@ _mesa_TextureStorage3DMultisample(GLuint texture, GLsizei samples,
|
||||||
GLenum internalformat, GLsizei width,
|
GLenum internalformat, GLsizei width,
|
||||||
GLsizei height, GLsizei depth,
|
GLsizei height, GLsizei depth,
|
||||||
GLboolean fixedsamplelocations);
|
GLboolean fixedsamplelocations);
|
||||||
|
|
||||||
|
extern void GLAPIENTRY
|
||||||
|
_mesa_TextureStorage2DMultisampleEXT(GLuint texture, GLenum target, GLsizei samples,
|
||||||
|
GLenum internalformat, GLsizei width,
|
||||||
|
GLsizei height, GLboolean fixedsamplelocations);
|
||||||
|
|
||||||
|
extern void GLAPIENTRY
|
||||||
|
_mesa_TextureStorage3DMultisampleEXT(GLuint texture, GLenum target, GLsizei samples,
|
||||||
|
GLenum internalformat, GLsizei width,
|
||||||
|
GLsizei height, GLsizei depth,
|
||||||
|
GLboolean fixedsamplelocations);
|
||||||
|
|
||||||
/*@}*/
|
/*@}*/
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
Loading…
Reference in New Issue