[Mesa-dev] [PATCH v2 1/2] mesa/es3.1: Expose GL_ARB_framebuffer_no_attachments to GLES 3.1
Ilia Mirkin
imirkin at alum.mit.edu
Mon Aug 24 06:02:11 PDT 2015
On Mon, Aug 24, 2015 at 7:01 AM, Marta Lofstedt
<marta.lofstedt at linux.intel.com> wrote:
> From: Marta Lofstedt <marta.lofstedt at intel.com>
>
> Signed-off-by: Marta Lofstedt <marta.lofstedt at intel.com>
> ---
> src/mapi/glapi/gen/ARB_framebuffer_no_attachments.xml | 4 ++--
> src/mapi/glapi/gen/apiexec.py | 4 ++--
> src/mesa/main/get.c | 6 ++++++
> src/mesa/main/get_hash_params.py | 8 +++++---
> src/mesa/main/tests/dispatch_sanity.cpp | 6 ++----
> src/mesa/main/version.c | 2 +-
> 6 files changed, 18 insertions(+), 12 deletions(-)
>
> diff --git a/src/mapi/glapi/gen/ARB_framebuffer_no_attachments.xml b/src/mapi/glapi/gen/ARB_framebuffer_no_attachments.xml
> index 59839a0..55ad764 100644
> --- a/src/mapi/glapi/gen/ARB_framebuffer_no_attachments.xml
> +++ b/src/mapi/glapi/gen/ARB_framebuffer_no_attachments.xml
> @@ -15,13 +15,13 @@
> <enum name="MAX_FRAMEBUFFER_LAYERS" value="0x9317" />
> <enum name="MAX_FRAMEBUFFER_SAMPLES" value="0x9318" />
>
> - <function name="FramebufferParameteri">
> + <function name="FramebufferParameteri" es2="3.1">
> <param name="target" type="GLenum"/>
> <param name="pname" type="GLenum"/>
> <param name="param" type="GLint" />
> </function>
>
> - <function name="GetFramebufferParameteriv">
> + <function name="GetFramebufferParameteriv" es2="3.1">
> <param name="target" type="GLenum" />
> <param name="pname" type="GLenum" />
> <param name="params" type="GLint *" output="true" />
> diff --git a/src/mapi/glapi/gen/apiexec.py b/src/mapi/glapi/gen/apiexec.py
> index 3a0eb18..58ec08b 100644
> --- a/src/mapi/glapi/gen/apiexec.py
> +++ b/src/mapi/glapi/gen/apiexec.py
> @@ -151,8 +151,8 @@ functions = {
>
> # OpenGL 4.3 / GL_ARB_framebuffer_no_attachments. Mesa can expose the
> # extension with OpenGL 3.0.
> - "FramebufferParameteri": exec_info(compatibility=30, core=31),
> - "GetFramebufferParameteri": exec_info(compatibility=30, core=31),
> + "FramebufferParameteri": exec_info(compatibility=30, core=31, es2=31),
> + "GetFramebufferParameteri": exec_info(compatibility=30, core=31, es2=31),
>
> # OpenGL 4.5 / GL_ARB_direct_state_access. Mesa can expose the extension
> # with core profile.
> diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
> index 307a5ff..8542ddb 100644
> --- a/src/mesa/main/get.c
> +++ b/src/mesa/main/get.c
> @@ -403,6 +403,12 @@ static const int extra_ARB_explicit_uniform_location_es31[] = {
> EXTRA_END
> };
>
> +static const int extra_ARB_framebuffer_no_attachments_es31[] = {
> + EXT(ARB_framebuffer_no_attachments),
> + EXTRA_API_ES31,
> + EXTRA_END
> +};
What does this add? When would you have ES31 but not
ARB_framebuffer_no_attachments?
> +
> EXTRA_EXT(ARB_texture_cube_map);
> EXTRA_EXT(EXT_texture_array);
> EXTRA_EXT(NV_fog_distance);
> diff --git a/src/mesa/main/get_hash_params.py b/src/mesa/main/get_hash_params.py
> index 517c391..3d6ed64 100644
> --- a/src/mesa/main/get_hash_params.py
> +++ b/src/mesa/main/get_hash_params.py
> @@ -450,6 +450,11 @@ descriptor=[
>
> # GL_ARB_explicit_uniform_location / GLES 3.1
> [ "MAX_UNIFORM_LOCATIONS", "CONTEXT_INT(Const.MaxUserAssignableUniformLocations), extra_ARB_explicit_uniform_location_es31" ],
> +
> +# GL_ARB_framebuffer_no_attachments / GLES 3.1
> + ["MAX_FRAMEBUFFER_WIDTH", "CONTEXT_INT(Const.MaxFramebufferWidth), extra_ARB_framebuffer_no_attachments_es31"],
> + ["MAX_FRAMEBUFFER_HEIGHT", "CONTEXT_INT(Const.MaxFramebufferHeight), extra_ARB_framebuffer_no_attachments_es31"],
> + ["MAX_FRAMEBUFFER_SAMPLES", "CONTEXT_INT(Const.MaxFramebufferSamples), extra_ARB_framebuffer_no_attachments_es31"],
> ]},
>
> # Enums in OpenGL Core profile and ES 3.1
> @@ -811,10 +816,7 @@ descriptor=[
> [ "MAX_GEOMETRY_IMAGE_UNIFORMS", "CONTEXT_INT(Const.Program[MESA_SHADER_GEOMETRY].MaxImageUniforms), extra_ARB_shader_image_load_store_and_geometry_shader"],
>
> # GL_ARB_framebuffer_no_attachments
> - ["MAX_FRAMEBUFFER_WIDTH", "CONTEXT_INT(Const.MaxFramebufferWidth), extra_ARB_framebuffer_no_attachments"],
> - ["MAX_FRAMEBUFFER_HEIGHT", "CONTEXT_INT(Const.MaxFramebufferHeight), extra_ARB_framebuffer_no_attachments"],
> ["MAX_FRAMEBUFFER_LAYERS", "CONTEXT_INT(Const.MaxFramebufferLayers), extra_ARB_framebuffer_no_attachments"],
> - ["MAX_FRAMEBUFFER_SAMPLES", "CONTEXT_INT(Const.MaxFramebufferSamples), extra_ARB_framebuffer_no_attachments"],
>
> # GL_EXT_polygon_offset_clamp
> [ "POLYGON_OFFSET_CLAMP_EXT", "CONTEXT_FLOAT(Polygon.OffsetClamp), extra_EXT_polygon_offset_clamp" ],
> diff --git a/src/mesa/main/tests/dispatch_sanity.cpp b/src/mesa/main/tests/dispatch_sanity.cpp
> index 59107eb..b9a760f 100644
> --- a/src/mesa/main/tests/dispatch_sanity.cpp
> +++ b/src/mesa/main/tests/dispatch_sanity.cpp
> @@ -2405,10 +2405,8 @@ const struct function gles31_functions_possible[] = {
> { "glDrawArraysIndirect", 31, -1 },
> { "glDrawElementsIndirect", 31, -1 },
>
> - // FINISHME: These two functions have not been implemented yet. They come
> - // FINISHME: from the ARB_framebuffer_no_attachments extension.
> - // { "glFramebufferParameteri", 31, -1 },
> - // { "glGetFramebufferParameteriv", 31, -1 },
> + { "glFramebufferParameteri", 31, -1 },
> + { "glGetFramebufferParameteriv", 31, -1 },
>
> { "glGetProgramInterfaceiv", 31, -1 },
> { "glGetProgramResourceIndex", 31, -1 },
> diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
> index fd7ae53..d3e902e 100644
> --- a/src/mesa/main/version.c
> +++ b/src/mesa/main/version.c
> @@ -450,7 +450,7 @@ compute_version_es2(const struct gl_extensions *extensions)
> extensions->ARB_arrays_of_arrays &&
> extensions->ARB_compute_shader &&
> extensions->ARB_draw_indirect &&
> - false /*extensions->ARB_framebuffer_no_attachments*/ &&
> + extensions->ARB_framebuffer_no_attachments &&
> extensions->ARB_shader_atomic_counters &&
> extensions->ARB_shader_image_load_store &&
> false /*extensions->ARB_shader_image_size*/ &&
> --
> 1.9.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list