[Mesa-dev] [PATCH 1/2] meta/blit: Always try to enable GL_ARB_sample_shading

Anuj Phogat anuj.phogat at gmail.com
Thu Oct 29 10:39:39 PDT 2015


On Thu, Oct 22, 2015 at 2:34 AM, Neil Roberts <neil at linux.intel.com> wrote:
> Previously this extension was only enabled when blitting between two
> multisampled buffers. However I don't think it does any harm to just
> enable it all the time. The ‘enable’ option is used instead of
> ‘require’ so that the shader will still compile if the extension isn't
> available in the cases where it isn't used. This will make the next
> patch simpler because it wants to add another optional extension.
> ---
>  src/mesa/drivers/common/meta_blit.c | 16 ++--------------
>  1 file changed, 2 insertions(+), 14 deletions(-)
>
> diff --git a/src/mesa/drivers/common/meta_blit.c b/src/mesa/drivers/common/meta_blit.c
> index b92c2e2..496ce45 100644
> --- a/src/mesa/drivers/common/meta_blit.c
> +++ b/src/mesa/drivers/common/meta_blit.c
> @@ -357,17 +357,11 @@ setup_glsl_msaa_blit_shader(struct gl_context *ctx,
>         shader_index == BLIT_MSAA_SHADER_2D_MULTISAMPLE_ARRAY_DEPTH_COPY ||
>         shader_index == BLIT_MSAA_SHADER_2D_MULTISAMPLE_DEPTH_COPY) {
>        char *sample_index;
> -      const char *arb_sample_shading_extension_string;
>
>        if (dst_is_msaa) {
> -         arb_sample_shading_extension_string = "#extension GL_ARB_sample_shading : enable";
>           sample_index = "gl_SampleID";
>           name = "depth MSAA copy";
>        } else {
> -         /* Don't need that extension, since we're drawing to a single-sampled
> -          * destination.
> -          */
> -         arb_sample_shading_extension_string = "";
>           /* From the GL 4.3 spec:
>            *
>            *     "If there is a multisample buffer (the value of SAMPLE_BUFFERS
> @@ -397,7 +391,7 @@ setup_glsl_msaa_blit_shader(struct gl_context *ctx,
>        fs_source = ralloc_asprintf(mem_ctx,
>                                    "#version 130\n"
>                                    "#extension GL_ARB_texture_multisample : enable\n"
> -                                  "%s\n"
> +                                  "#extension GL_ARB_sample_shading : enable\n"
>                                    "uniform sampler2DMS%s texSampler;\n"
>                                    "in %s texCoords;\n"
>                                    "out vec4 out_color;\n"
> @@ -406,7 +400,6 @@ setup_glsl_msaa_blit_shader(struct gl_context *ctx,
>                                    "{\n"
>                                    "   gl_FragDepth = texelFetch(texSampler, i%s(texCoords), %s).r;\n"
>                                    "}\n",
> -                                  arb_sample_shading_extension_string,
>                                    sampler_array_suffix,
>                                    texcoord_type,
>                                    texcoord_type,
> @@ -416,14 +409,12 @@ setup_glsl_msaa_blit_shader(struct gl_context *ctx,
>         * sample).  Yes, this is ridiculous.
>         */
>        char *sample_resolve;
> -      const char *arb_sample_shading_extension_string;
>        const char *merge_function;
>        name = ralloc_asprintf(mem_ctx, "%svec4 MSAA %s",
>                               vec4_prefix,
>                               dst_is_msaa ? "copy" : "resolve");
>
>        if (dst_is_msaa) {
> -         arb_sample_shading_extension_string = "#extension GL_ARB_sample_shading : enable";
>           sample_resolve = ralloc_asprintf(mem_ctx, "   out_color = texelFetch(texSampler, i%s(texCoords), gl_SampleID);", texcoord_type);
>           merge_function = "";
>        } else {
> @@ -439,8 +430,6 @@ setup_glsl_msaa_blit_shader(struct gl_context *ctx,
>                 "vec4 merge(vec4 a, vec4 b) { return (a + b); }\n";
>           }
>
> -         arb_sample_shading_extension_string = "";
> -
>           /* We're assuming power of two samples for this resolution procedure.
>            *
>            * To avoid losing any floating point precision if the samples all
> @@ -496,7 +485,7 @@ setup_glsl_msaa_blit_shader(struct gl_context *ctx,
>        fs_source = ralloc_asprintf(mem_ctx,
>                                    "#version 130\n"
>                                    "#extension GL_ARB_texture_multisample : enable\n"
> -                                  "%s\n"
> +                                  "#extension GL_ARB_sample_shading : enable\n"
>                                    "#define gvec4 %svec4\n"
>                                    "uniform %ssampler2DMS%s texSampler;\n"
>                                    "in %s texCoords;\n"
> @@ -507,7 +496,6 @@ setup_glsl_msaa_blit_shader(struct gl_context *ctx,
>                                    "{\n"
>                                    "%s\n" /* sample_resolve */
>                                    "}\n",
> -                                  arb_sample_shading_extension_string,
>                                    vec4_prefix,
>                                    vec4_prefix,
>                                    sampler_array_suffix,
> --
> 1.9.3
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>


More information about the mesa-dev mailing list