mesa: OVR_multiview_multisampled_render_to_texture
this is automatically supported for anyone that supports OVR_multiview and EXT_multisampled_render_to_texture Acked-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31235>
This commit is contained in:

committed by
Marge Bot

parent
894b37e060
commit
ac912b3754
@@ -353,6 +353,7 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
|
||||
GL_OES_viewport_array DONE (freedreno/a6xx, nvc0, r600, radeonsi, softpipe, zink, iris, crocus/gen7.5+, asahi)
|
||||
GL_OVR_multiview DONE (zink)
|
||||
GL_OVR_multiview2 DONE (zink)
|
||||
GL_OVR_multiview_multisampled_render_to_texture DONE (zink)
|
||||
GLX_ARB_context_flush_control DONE (all drivers)
|
||||
GLX_ARB_robustness_application_isolation not started
|
||||
GLX_ARB_robustness_share_group_isolation not started
|
||||
|
@@ -1,6 +1,6 @@
|
||||
# Please include a comment with the log message and a testcase triggering each
|
||||
# VUID at the bottom of the file.
|
||||
khronos_validation.message_id_filter = VUID-VkPhysicalDeviceProperties2-pNext-pNext,VUID-VkDeviceCreateInfo-pNext-pNext,VUID-RuntimeSpirv-Location-06272,VUID-vkCmdDrawMultiEXT-None-02699,VUID-RuntimeSpirv-OpEntryPoint-08743,VUID-vkCmdPipelineBarrier2-shaderTileImageColorReadAccess-08718,VUID-VkGraphicsPipelineCreateInfo-flags-06482,VUID-vkCmdPipelineBarrier2-None-08719
|
||||
khronos_validation.message_id_filter = VUID-VkPhysicalDeviceProperties2-pNext-pNext,VUID-VkDeviceCreateInfo-pNext-pNext,VUID-RuntimeSpirv-Location-06272,VUID-vkCmdDrawMultiEXT-None-02699,VUID-RuntimeSpirv-OpEntryPoint-08743,VUID-vkCmdPipelineBarrier2-shaderTileImageColorReadAccess-08718,VUID-VkGraphicsPipelineCreateInfo-flags-06482,VUID-vkCmdPipelineBarrier2-None-08719,VUID-vkCmdDrawMultiEXT-rasterizationSamples-07474
|
||||
khronos_validation.report_flags = error
|
||||
khronos_validation.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG,VK_DBG_LAYER_ACTION_BREAK
|
||||
VK_LAYER_ENABLES=VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT
|
||||
@@ -60,3 +60,6 @@ khronos_validation.log_filename = stdout
|
||||
# VUID-vkCmdPipelineBarrier2-shaderTileImageColorReadAccess-08718
|
||||
# VUID-VkGraphicsPipelineCreateInfo-flags-06482
|
||||
# VUID-vkCmdPipelineBarrier2-None-08719
|
||||
|
||||
# spec broken
|
||||
# VUID-vkCmdDrawMultiEXT-rasterizationSamples-07474
|
||||
|
@@ -333,6 +333,7 @@ glFramebufferTexture3DEXT
|
||||
glFramebufferTextureLayer
|
||||
glFramebufferTextureLayerEXT
|
||||
glFramebufferTextureMultiviewOVR
|
||||
glFramebufferTextureMultisampleMultiviewOVR
|
||||
glFrontFace
|
||||
glFrustum
|
||||
glFrustumf
|
||||
|
18
src/mapi/glapi/gen/OVR_multiview_multisampled_render_to_texture.xml
Executable file
18
src/mapi/glapi/gen/OVR_multiview_multisampled_render_to_texture.xml
Executable file
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
|
||||
|
||||
<OpenGLAPI>
|
||||
|
||||
<category name="GL_OVR_multiview_multisampled_render_to_texture">
|
||||
<function name="FramebufferTextureMultisampleMultiviewOVR" es2="3.0" desktop="true" no_error="true">
|
||||
<param name="target" type="GLenum"/>
|
||||
<param name="attachment" type="GLenum"/>
|
||||
<param name="texture" type="GLuint"/>
|
||||
<param name="level" type="GLint"/>
|
||||
<param name="samples" type="GLsizei"/>
|
||||
<param name="baseviewindex" type="GLint"/>
|
||||
<param name="numviews" type="GLsizei"/>
|
||||
</function>
|
||||
</category>
|
||||
|
||||
</OpenGLAPI>
|
@@ -8064,6 +8064,8 @@
|
||||
|
||||
<xi:include href="OVR_multiview.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
|
||||
|
||||
<xi:include href="OVR_multiview_multisampled_render_to_texture.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
|
||||
|
||||
<!-- 46. GL_ARB_framebuffer_sRGB -->
|
||||
|
||||
<!-- 47. GL_ARB_geometry_shader4. There are no intentions to implement this extension -->
|
||||
|
@@ -1710,6 +1710,7 @@ offsets = {
|
||||
"TexStorageAttribs3DEXT": 1674,
|
||||
"FramebufferTextureMultiviewOVR": 1675,
|
||||
"NamedFramebufferTextureMultiviewOVR": 1676,
|
||||
"FramebufferTextureMultisampleMultiviewOVR": 1677,
|
||||
}
|
||||
|
||||
functions = [
|
||||
@@ -2037,6 +2038,7 @@ functions = [
|
||||
"FramebufferTextureLayer",
|
||||
"FramebufferTextureLayerARB",
|
||||
"FramebufferTextureLayerEXT",
|
||||
"FramebufferTextureMultisampleMultiviewOVR",
|
||||
"FramebufferTextureMultiviewOVR",
|
||||
"FrontFace",
|
||||
"Frustum",
|
||||
|
@@ -225,6 +225,7 @@ struct gl_extensions
|
||||
GLboolean OES_viewport_array;
|
||||
GLboolean OVR_multiview;
|
||||
GLboolean OVR_multiview2;
|
||||
GLboolean OVR_multiview_multisampled_render_to_texture;
|
||||
/* vendor extensions */
|
||||
GLboolean AMD_compressed_ATC_texture;
|
||||
GLboolean AMD_framebuffer_multisample_advanced;
|
||||
|
@@ -507,6 +507,7 @@ EXT(OES_vertex_half_float , ARB_half_float_vertex
|
||||
EXT(OES_viewport_array , OES_viewport_array , x , x , x , 31, 2010)
|
||||
EXT(OVR_multiview , OVR_multiview , GLL, GLC, x , 30, 2018)
|
||||
EXT(OVR_multiview2 , OVR_multiview2 , GLL, GLC, x , 30, 2018)
|
||||
EXT(OVR_multiview_multisampled_render_to_texture, OVR_multiview_multisampled_render_to_texture, GLL, GLC, x , 30, 2018)
|
||||
EXT(S3_s3tc , ANGLE_texture_compression_dxt , GLL, GLC, x , x , 1999)
|
||||
|
||||
EXT(SGIS_generate_mipmap , dummy_true , GLL, x , x , x , 1997)
|
||||
|
@@ -4217,7 +4217,7 @@ _mesa_FramebufferTexture3D(GLenum target, GLenum attachment,
|
||||
static ALWAYS_INLINE void
|
||||
frame_buffer_texture(GLuint framebuffer, GLenum target,
|
||||
GLenum attachment, GLuint texture,
|
||||
GLint level, GLint layer, const char *func,
|
||||
GLint level, GLsizei samples, GLint layer, const char *func,
|
||||
bool dsa, bool no_error, bool check_layered, GLsizei numviews)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
@@ -4329,7 +4329,7 @@ frame_buffer_texture(GLuint framebuffer, GLenum target,
|
||||
}
|
||||
|
||||
_mesa_framebuffer_texture(ctx, fb, attachment, att, texObj, textarget,
|
||||
level, 0, layer, layered, numviews);
|
||||
level, samples, layer, layered, numviews);
|
||||
}
|
||||
|
||||
|
||||
@@ -4338,7 +4338,7 @@ _mesa_FramebufferTextureLayer_no_error(GLenum target, GLenum attachment,
|
||||
GLuint texture, GLint level,
|
||||
GLint layer)
|
||||
{
|
||||
frame_buffer_texture(0, target, attachment, texture, level, layer,
|
||||
frame_buffer_texture(0, target, attachment, texture, level, 0, layer,
|
||||
"glFramebufferTextureLayer", false, true, false, 0);
|
||||
}
|
||||
|
||||
@@ -4347,7 +4347,7 @@ void GLAPIENTRY
|
||||
_mesa_FramebufferTextureLayer(GLenum target, GLenum attachment,
|
||||
GLuint texture, GLint level, GLint layer)
|
||||
{
|
||||
frame_buffer_texture(0, target, attachment, texture, level, layer,
|
||||
frame_buffer_texture(0, target, attachment, texture, level, 0, layer,
|
||||
"glFramebufferTextureLayer", false, false, false, 0);
|
||||
}
|
||||
|
||||
@@ -4358,7 +4358,7 @@ _mesa_NamedFramebufferTextureLayer_no_error(GLuint framebuffer,
|
||||
GLuint texture, GLint level,
|
||||
GLint layer)
|
||||
{
|
||||
frame_buffer_texture(framebuffer, 0, attachment, texture, level, layer,
|
||||
frame_buffer_texture(framebuffer, 0, attachment, texture, level, 0, layer,
|
||||
"glNamedFramebufferTextureLayer", true, true, false, 0);
|
||||
}
|
||||
|
||||
@@ -4367,7 +4367,7 @@ void GLAPIENTRY
|
||||
_mesa_NamedFramebufferTextureLayer(GLuint framebuffer, GLenum attachment,
|
||||
GLuint texture, GLint level, GLint layer)
|
||||
{
|
||||
frame_buffer_texture(framebuffer, 0, attachment, texture, level, layer,
|
||||
frame_buffer_texture(framebuffer, 0, attachment, texture, level, 0, layer,
|
||||
"glNamedFramebufferTextureLayer", true, false, false, 0);
|
||||
}
|
||||
|
||||
@@ -4377,7 +4377,7 @@ _mesa_FramebufferTextureMultiviewOVR_no_error(GLenum target, GLenum attachment,
|
||||
GLuint texture, GLint level,
|
||||
GLint baseViewIndex, GLsizei numViews)
|
||||
{
|
||||
frame_buffer_texture(0, target, attachment, texture, level, baseViewIndex,
|
||||
frame_buffer_texture(0, target, attachment, texture, level, 0, baseViewIndex,
|
||||
"glFramebufferTexture", false, true, false, numViews);
|
||||
}
|
||||
|
||||
@@ -4387,17 +4387,37 @@ _mesa_FramebufferTextureMultiviewOVR(GLenum target, GLenum attachment,
|
||||
GLuint texture, GLint level,
|
||||
GLint baseViewIndex, GLsizei numViews)
|
||||
{
|
||||
frame_buffer_texture(0, target, attachment, texture, level, baseViewIndex,
|
||||
frame_buffer_texture(0, target, attachment, texture, level, 0, baseViewIndex,
|
||||
"glFramebufferTexture", false, false, false, numViews);
|
||||
}
|
||||
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_FramebufferTextureMultisampleMultiviewOVR_no_error(GLenum target, GLenum attachment,
|
||||
GLuint texture, GLint level, GLsizei samples,
|
||||
GLint baseViewIndex, GLsizei numViews)
|
||||
{
|
||||
frame_buffer_texture(0, target, attachment, texture, level, samples, baseViewIndex,
|
||||
"FramebufferTextureMultisampleMultiviewOVR", false, true, false, numViews);
|
||||
}
|
||||
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_FramebufferTextureMultisampleMultiviewOVR(GLenum target, GLenum attachment,
|
||||
GLuint texture, GLint level, GLsizei samples,
|
||||
GLint baseViewIndex, GLsizei numViews)
|
||||
{
|
||||
frame_buffer_texture(0, target, attachment, texture, level, samples, baseViewIndex,
|
||||
"FramebufferTextureMultisampleMultiviewOVR", false, false, false, numViews);
|
||||
}
|
||||
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_NamedFramebufferTextureMultiviewOVR_no_error(GLuint framebuffer, GLenum attachment,
|
||||
GLuint texture, GLint level,
|
||||
GLint baseViewIndex, GLsizei numViews)
|
||||
{
|
||||
frame_buffer_texture(framebuffer, 0, attachment, texture, level, baseViewIndex,
|
||||
frame_buffer_texture(framebuffer, 0, attachment, texture, level, 0, baseViewIndex,
|
||||
"glFramebufferTexture", true, true, false, numViews);
|
||||
}
|
||||
|
||||
@@ -4407,7 +4427,7 @@ _mesa_NamedFramebufferTextureMultiviewOVR(GLuint framebuffer, GLenum attachment,
|
||||
GLuint texture, GLint level,
|
||||
GLint baseViewIndex, GLsizei numViews)
|
||||
{
|
||||
frame_buffer_texture(framebuffer, 0, attachment, texture, level, baseViewIndex,
|
||||
frame_buffer_texture(framebuffer, 0, attachment, texture, level, 0, baseViewIndex,
|
||||
"glFramebufferTexture", true, false, false, numViews);
|
||||
}
|
||||
|
||||
@@ -4416,7 +4436,7 @@ void GLAPIENTRY
|
||||
_mesa_FramebufferTexture_no_error(GLenum target, GLenum attachment,
|
||||
GLuint texture, GLint level)
|
||||
{
|
||||
frame_buffer_texture(0, target, attachment, texture, level, 0,
|
||||
frame_buffer_texture(0, target, attachment, texture, level, 0, 0,
|
||||
"glFramebufferTexture", false, true, true, 0);
|
||||
}
|
||||
|
||||
@@ -4425,7 +4445,7 @@ void GLAPIENTRY
|
||||
_mesa_FramebufferTexture(GLenum target, GLenum attachment,
|
||||
GLuint texture, GLint level)
|
||||
{
|
||||
frame_buffer_texture(0, target, attachment, texture, level, 0,
|
||||
frame_buffer_texture(0, target, attachment, texture, level, 0, 0,
|
||||
"glFramebufferTexture", false, false, true, 0);
|
||||
}
|
||||
|
||||
@@ -4433,7 +4453,7 @@ void GLAPIENTRY
|
||||
_mesa_NamedFramebufferTexture_no_error(GLuint framebuffer, GLenum attachment,
|
||||
GLuint texture, GLint level)
|
||||
{
|
||||
frame_buffer_texture(framebuffer, 0, attachment, texture, level, 0,
|
||||
frame_buffer_texture(framebuffer, 0, attachment, texture, level, 0, 0,
|
||||
"glNamedFramebufferTexture", true, true, true, 0);
|
||||
}
|
||||
|
||||
@@ -4442,7 +4462,7 @@ void GLAPIENTRY
|
||||
_mesa_NamedFramebufferTexture(GLuint framebuffer, GLenum attachment,
|
||||
GLuint texture, GLint level)
|
||||
{
|
||||
frame_buffer_texture(framebuffer, 0, attachment, texture, level, 0,
|
||||
frame_buffer_texture(framebuffer, 0, attachment, texture, level, 0, 0,
|
||||
"glNamedFramebufferTexture", true, false, true, 0);
|
||||
}
|
||||
|
||||
|
@@ -1297,6 +1297,9 @@ void st_init_extensions(struct pipe_screen *screen,
|
||||
break;
|
||||
}
|
||||
|
||||
extensions->OVR_multiview_multisampled_render_to_texture = extensions->EXT_multisampled_render_to_texture &&
|
||||
extensions->OVR_multiview;
|
||||
|
||||
if (screen->get_param(screen, PIPE_CAP_OPENCL_INTEGER_FUNCTIONS) &&
|
||||
screen->get_param(screen, PIPE_CAP_INTEGER_MULTIPLY_32X16)) {
|
||||
extensions->INTEL_shader_integer_functions2 = GL_TRUE;
|
||||
|
Reference in New Issue
Block a user