[Mesa-dev] [PATCH] i965: add ARB_texture_barrier support

Jason Ekstrand jason at jlekstrand.net
Wed Sep 23 12:32:57 PDT 2015


As Eric mentioned, we may not *need* the extra PIPE_CONTROL.  However,
that's going to take some thinking and it's mostly a performance
thing; this patch should be correct.

Reviewed-by: Jason Ekstrand <jason.ekstrand at intel.com>

On Thu, Sep 10, 2015 at 5:56 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
> ping
>
> On Thu, Aug 13, 2015 at 3:42 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
>> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
>> ---
>>
>> The blending-in-shader piglit test passed even without the flush,
>> which doesn't inspire me with confidence, but those piglit_draw_rect
>> things are pretty heavy so perhaps cause a flush on their own anyways.
>>
>>  docs/GL3.txt                                 | 2 +-
>>  docs/relnotes/11.0.0.html                    | 1 +
>>  src/mesa/drivers/dri/i965/intel_extensions.c | 1 +
>>  src/mesa/drivers/dri/i965/intel_tex.c        | 9 +++++++++
>>  4 files changed, 12 insertions(+), 1 deletion(-)
>>
>> diff --git a/docs/GL3.txt b/docs/GL3.txt
>> index 54c0c5a..ed0e160 100644
>> --- a/docs/GL3.txt
>> +++ b/docs/GL3.txt
>> @@ -195,7 +195,7 @@ GL 4.5, GLSL 4.50:
>>    GL_ARB_direct_state_access                           DONE (all drivers)
>>    GL_ARB_get_texture_sub_image                         DONE (all drivers)
>>    GL_ARB_shader_texture_image_samples                  not started
>> -  GL_ARB_texture_barrier                               DONE (nv50, nvc0, r600, radeonsi)
>> +  GL_ARB_texture_barrier                               DONE (i965, nv50, nvc0, r600, radeonsi)
>>    GL_KHR_context_flush_control                         DONE (all - but needs GLX/EXT extension to be useful)
>>    GL_KHR_robust_buffer_access_behavior                 not started
>>    GL_KHR_robustness                                    90% done (the ARB variant)
>> diff --git a/docs/relnotes/11.0.0.html b/docs/relnotes/11.0.0.html
>> index 2d80198..15b0477 100644
>> --- a/docs/relnotes/11.0.0.html
>> +++ b/docs/relnotes/11.0.0.html
>> @@ -56,6 +56,7 @@ Note: some of the new features are only available with certain drivers.
>>  <li>GL_ARB_shader_stencil_export on llvmpipe</li>
>>  <li>GL_ARB_shader_subroutine on core profile all drivers</li>
>>  <li>GL_ARB_tessellation_shader on nvc0, radeonsi</li>
>> +<li>GL_ARB_texture_barrier / GL_NV_texture_barrier on i965</li>
>>  <li>GL_ARB_vertex_attrib_64bit on llvmpipe, radeonsi</li>
>>  <li>GL_ARB_viewport_array on radeonsi</li>
>>  <li>GLX_ARB_create_context_robustness on r600, radeonsi</li>
>> diff --git a/src/mesa/drivers/dri/i965/intel_extensions.c b/src/mesa/drivers/dri/i965/intel_extensions.c
>> index 24229af..ee9abe5 100644
>> --- a/src/mesa/drivers/dri/i965/intel_extensions.c
>> +++ b/src/mesa/drivers/dri/i965/intel_extensions.c
>> @@ -250,6 +250,7 @@ intelInitExtensions(struct gl_context *ctx)
>>     ctx->Extensions.MESA_pack_invert = true;
>>     ctx->Extensions.NV_conditional_render = true;
>>     ctx->Extensions.NV_primitive_restart = true;
>> +   ctx->Extensions.NV_texture_barrier = true;
>>     ctx->Extensions.NV_texture_env_combine4 = true;
>>     ctx->Extensions.NV_texture_rectangle = true;
>>     ctx->Extensions.TDFX_texture_compression_FXT1 = true;
>> diff --git a/src/mesa/drivers/dri/i965/intel_tex.c b/src/mesa/drivers/dri/i965/intel_tex.c
>> index e16b0de..cac33ac 100644
>> --- a/src/mesa/drivers/dri/i965/intel_tex.c
>> +++ b/src/mesa/drivers/dri/i965/intel_tex.c
>> @@ -357,6 +357,14 @@ intel_set_texture_storage_for_buffer_object(struct gl_context *ctx,
>>     return true;
>>  }
>>
>> +static void
>> +intel_texture_barrier(struct gl_context *ctx)
>> +{
>> +   struct brw_context *brw = brw_context(ctx);
>> +
>> +   brw_emit_mi_flush(brw);
>> +}
>> +
>>  void
>>  intelInitTextureFuncs(struct dd_function_table *functions)
>>  {
>> @@ -372,4 +380,5 @@ intelInitTextureFuncs(struct dd_function_table *functions)
>>     functions->TextureView = intel_texture_view;
>>     functions->SetTextureStorageForBufferObject =
>>        intel_set_texture_storage_for_buffer_object;
>> +   functions->TextureBarrier = intel_texture_barrier;
>>  }
>> --
>> 2.4.6
>>
> _______________________________________________
> 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