<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr">On Tue, Apr 3, 2018, 10:32 PM Timothy Arceri <<a href="mailto:tarceri@itsqueeze.com">tarceri@itsqueeze.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 04/04/18 11:58, Roland Scheidegger wrote:<br>
> AFAIK these filters (and I've never looked into them) should be<br>
> transparent to hw drivers. Hence a cap bit doesn't make sense, and if<br>
> it's broken we shouldn't just paper over this.<br>
<br>
I created a CAP because the AMD devs have no interest in supporting this<br>
feature [1]. Even if they are transparent to drivers I don't see why<br>
drivers should be forced to enable them if they don't want to. CCing<br>
Marek for his opinion.<br>
<br>
[1] <a href="https://bugs.freedesktop.org/show_bug.cgi?id=99549#c3" rel="noreferrer noreferrer" target="_blank">https://bugs.freedesktop.org/show_bug.cgi?id=99549#c3</a></blockquote></div></div><div dir="auto"><br></div><div dir="auto">As long as it's just a crash and not a hang, it doesn't matter much. I don't think anybody is using pp, though it's a trap for curious users for sure.</div><div dir="auto"><br></div><div dir="auto">Marek</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
><br>
> Roland<br>
><br>
> Am 03.04.2018 um 13:38 schrieb Timothy Arceri:<br>
>> For radeonsi these seem to have been somewhat broken for over a<br>
>> year, and as of recently they cause the driver to crash.<br>
>><br>
>> This patch adds a CAP for the filters and enables the CAP for all<br>
>> driver except radeonsi.<br>
>><br>
>> Bugzilla: <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__bugs.freedesktop.org_show-5Fbug.cgi-3Fid-3D99549&d=DwIGaQ&c=uilaK90D4TOVoH58JNXRgQ&r=_QIjpv-UJ77xEQY8fIYoQtr5qv8wKrPJc7v7_-CYAb0&m=FsyE0Iv-1HkgmJ_6JgvnISAuUbjQthRX9OcSu3BUhgc&s=5iJ7ErqsBvMPRH06U44_GD_7EvtIFP8hzyKeeDtIxxE&e=" rel="noreferrer noreferrer" target="_blank">https://urldefense.proofpoint.com/v2/url?u=https-3A__bugs.freedesktop.org_show-5Fbug.cgi-3Fid-3D99549&d=DwIGaQ&c=uilaK90D4TOVoH58JNXRgQ&r=_QIjpv-UJ77xEQY8fIYoQtr5qv8wKrPJc7v7_-CYAb0&m=FsyE0Iv-1HkgmJ_6JgvnISAuUbjQthRX9OcSu3BUhgc&s=5iJ7ErqsBvMPRH06U44_GD_7EvtIFP8hzyKeeDtIxxE&e=</a><br>
>> Bugzilla: <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__bugs.freedesktop.org_show-5Fbug.cgi-3Fid-3D105026&d=DwIGaQ&c=uilaK90D4TOVoH58JNXRgQ&r=_QIjpv-UJ77xEQY8fIYoQtr5qv8wKrPJc7v7_-CYAb0&m=FsyE0Iv-1HkgmJ_6JgvnISAuUbjQthRX9OcSu3BUhgc&s=PeI7pgvz9cprwPELTcdw_TUZHrtj1tt6KjHa-4rVRtY&e=" rel="noreferrer noreferrer" target="_blank">https://urldefense.proofpoint.com/v2/url?u=https-3A__bugs.freedesktop.org_show-5Fbug.cgi-3Fid-3D105026&d=DwIGaQ&c=uilaK90D4TOVoH58JNXRgQ&r=_QIjpv-UJ77xEQY8fIYoQtr5qv8wKrPJc7v7_-CYAb0&m=FsyE0Iv-1HkgmJ_6JgvnISAuUbjQthRX9OcSu3BUhgc&s=PeI7pgvz9cprwPELTcdw_TUZHrtj1tt6KjHa-4rVRtY&e=</a><br>
>> ---<br>
>>   src/gallium/docs/source/screen.rst               |  2 ++<br>
>>   src/gallium/drivers/etnaviv/etnaviv_screen.c     |  1 +<br>
>>   src/gallium/drivers/freedreno/freedreno_screen.c |  1 +<br>
>>   src/gallium/drivers/i915/i915_screen.c           |  1 +<br>
>>   src/gallium/drivers/llvmpipe/lp_screen.c         |  1 +<br>
>>   src/gallium/drivers/nouveau/nv30/nv30_screen.c   |  1 +<br>
>>   src/gallium/drivers/nouveau/nv50/nv50_screen.c   |  1 +<br>
>>   src/gallium/drivers/nouveau/nvc0/nvc0_screen.c   |  1 +<br>
>>   src/gallium/drivers/r300/r300_screen.c           |  1 +<br>
>>   src/gallium/drivers/r600/r600_pipe.c             |  1 +<br>
>>   src/gallium/drivers/radeonsi/si_get.c            |  1 +<br>
>>   src/gallium/drivers/softpipe/sp_screen.c         |  1 +<br>
>>   src/gallium/drivers/svga/svga_screen.c           |  1 +<br>
>>   src/gallium/drivers/swr/swr_screen.cpp           |  1 +<br>
>>   src/gallium/drivers/vc4/vc4_screen.c             |  1 +<br>
>>   src/gallium/drivers/vc5/vc5_screen.c             |  1 +<br>
>>   src/gallium/drivers/virgl/virgl_screen.c         |  2 ++<br>
>>   src/gallium/include/pipe/p_defines.h             |  1 +<br>
>>   src/gallium/state_trackers/dri/dri_screen.c      | 15 ++++++++-------<br>
>>   19 files changed, 28 insertions(+), 7 deletions(-)<br>
>><br>
>> diff --git a/src/gallium/docs/source/screen.rst b/src/gallium/docs/source/screen.rst<br>
>> index 3837360fb40..22aba928580 100644<br>
>> --- a/src/gallium/docs/source/screen.rst<br>
>> +++ b/src/gallium/docs/source/screen.rst<br>
>> @@ -420,6 +420,8 @@ The integer capabilities:<br>
>>     by the driver, and the driver can throw assertion failures.<br>
>>   * ``PIPE_CAP_PACKED_UNIFORMS``: True if the driver supports packed uniforms<br>
>>     as opposed to padding to vec4s.<br>
>> +* ``PIPE_CAP_PP_FILTERS``: True if the driver supports the postprocess filters<br>
>> +  available in gallium.<br>
>><br>
>><br>
>>   .. _pipe_capf:<br>
>> diff --git a/src/gallium/drivers/etnaviv/etnaviv_screen.c b/src/gallium/drivers/etnaviv/etnaviv_screen.c<br>
>> index 2ae4e86c631..d277ac834db 100644<br>
>> --- a/src/gallium/drivers/etnaviv/etnaviv_screen.c<br>
>> +++ b/src/gallium/drivers/etnaviv/etnaviv_screen.c<br>
>> @@ -140,6 +140,7 @@ etna_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)<br>
>>      case PIPE_CAP_TGSI_TEXCOORD:<br>
>>      case PIPE_CAP_VERTEX_COLOR_UNCLAMPED:<br>
>>      case PIPE_CAP_MIXED_COLOR_DEPTH_BITS:<br>
>> +   case PIPE_CAP_PP_FILTERS:<br>
>>         return 1;<br>
>>      case PIPE_CAP_NATIVE_FENCE_FD:<br>
>>         return screen->drm_version >= ETNA_DRM_VERSION_FENCE_FD;<br>
>> diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c b/src/gallium/drivers/freedreno/freedreno_screen.c<br>
>> index f338d756dfe..42ab87514d8 100644<br>
>> --- a/src/gallium/drivers/freedreno/freedreno_screen.c<br>
>> +++ b/src/gallium/drivers/freedreno/freedreno_screen.c<br>
>> @@ -186,6 +186,7 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)<br>
>>      case PIPE_CAP_MIXED_COLOR_DEPTH_BITS:<br>
>>      case PIPE_CAP_TEXTURE_BARRIER:<br>
>>      case PIPE_CAP_INVALIDATE_BUFFER:<br>
>> +    case PIPE_CAP_PP_FILTERS:<br>
>>              return 1;<br>
>><br>
>>      case PIPE_CAP_VERTEXID_NOBASE:<br>
>> diff --git a/src/gallium/drivers/i915/i915_screen.c b/src/gallium/drivers/i915/i915_screen.c<br>
>> index 59d2ec66284..8564a8567e4 100644<br>
>> --- a/src/gallium/drivers/i915/i915_screen.c<br>
>> +++ b/src/gallium/drivers/i915/i915_screen.c<br>
>> @@ -205,6 +205,7 @@ i915_get_param(struct pipe_screen *screen, enum pipe_cap cap)<br>
>>      case PIPE_CAP_VERTEX_COLOR_CLAMPED:<br>
>>      case PIPE_CAP_USER_VERTEX_BUFFERS:<br>
>>      case PIPE_CAP_MIXED_COLOR_DEPTH_BITS:<br>
>> +   case PIPE_CAP_PP_FILTERS:<br>
>>         return 1;<br>
>><br>
>>      /* Unsupported features (boolean caps). */<br>
>> diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c<br>
>> index 3f5d0327bf9..9290d3ec869 100644<br>
>> --- a/src/gallium/drivers/llvmpipe/lp_screen.c<br>
>> +++ b/src/gallium/drivers/llvmpipe/lp_screen.c<br>
>> @@ -110,6 +110,7 @@ llvmpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)<br>
>>      case PIPE_CAP_NPOT_TEXTURES:<br>
>>      case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES:<br>
>>      case PIPE_CAP_MIXED_COLOR_DEPTH_BITS:<br>
>> +   case PIPE_CAP_PP_FILTERS:<br>
>>         return 1;<br>
>>      case PIPE_CAP_SM3:<br>
>>         return 1;<br>
>> diff --git a/src/gallium/drivers/nouveau/nv30/nv30_screen.c b/src/gallium/drivers/nouveau/nv30/nv30_screen.c<br>
>> index 1d1fbaad607..d3afd0cf493 100644<br>
>> --- a/src/gallium/drivers/nouveau/nv30/nv30_screen.c<br>
>> +++ b/src/gallium/drivers/nouveau/nv30/nv30_screen.c<br>
>> @@ -94,6 +94,7 @@ nv30_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)<br>
>>      case PIPE_CAP_VERTEX_ELEMENT_SRC_OFFSET_4BYTE_ALIGNED_ONLY:<br>
>>      case PIPE_CAP_PREFER_BLIT_BASED_TEXTURE_TRANSFER:<br>
>>      case PIPE_CAP_ALLOW_MAPPED_BUFFERS_DURING_EXECUTION:<br>
>> +   case PIPE_CAP_PP_FILTERS:<br>
>>         return 1;<br>
>>      /* nv35 capabilities */<br>
>>      case PIPE_CAP_DEPTH_BOUNDS_TEST:<br>
>> diff --git a/src/gallium/drivers/nouveau/nv50/nv50_screen.c b/src/gallium/drivers/nouveau/nv50/nv50_screen.c<br>
>> index 6fd2982e3cb..643c4516935 100644<br>
>> --- a/src/gallium/drivers/nouveau/nv50/nv50_screen.c<br>
>> +++ b/src/gallium/drivers/nouveau/nv50/nv50_screen.c<br>
>> @@ -199,6 +199,7 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)<br>
>>      case PIPE_CAP_TGSI_CLOCK:<br>
>>      case PIPE_CAP_CAN_BIND_CONST_BUFFER_AS_VERTEX:<br>
>>      case PIPE_CAP_ALLOW_MAPPED_BUFFERS_DURING_EXECUTION:<br>
>> +   case PIPE_CAP_PP_FILTERS:<br>
>>         return 1;<br>
>>      case PIPE_CAP_SEAMLESS_CUBE_MAP:<br>
>>         return 1; /* class_3d >= NVA0_3D_CLASS; */<br>
>> diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c<br>
>> index b4a2c676f59..eb50f12bf76 100644<br>
>> --- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c<br>
>> +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c<br>
>> @@ -254,6 +254,7 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)<br>
>>      case PIPE_CAP_COMPUTE:<br>
>>      case PIPE_CAP_CAN_BIND_CONST_BUFFER_AS_VERTEX:<br>
>>      case PIPE_CAP_ALLOW_MAPPED_BUFFERS_DURING_EXECUTION:<br>
>> +   case PIPE_CAP_PP_FILTERS:<br>
>>         return 1;<br>
>>      case PIPE_CAP_PREFER_BLIT_BASED_TEXTURE_TRANSFER:<br>
>>         return nouveau_screen(pscreen)->vram_domain & NOUVEAU_BO_VRAM ? 1 : 0;<br>
>> diff --git a/src/gallium/drivers/r300/r300_screen.c b/src/gallium/drivers/r300/r300_screen.c<br>
>> index 8ea2e87ce68..0f49dcd4c04 100644<br>
>> --- a/src/gallium/drivers/r300/r300_screen.c<br>
>> +++ b/src/gallium/drivers/r300/r300_screen.c<br>
>> @@ -111,6 +111,7 @@ static int r300_get_param(struct pipe_screen* pscreen, enum pipe_cap param)<br>
>>           case PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT:<br>
>>           case PIPE_CAP_CLIP_HALFZ:<br>
>>           case PIPE_CAP_ALLOW_MAPPED_BUFFERS_DURING_EXECUTION:<br>
>> +        case PIPE_CAP_PP_FILTERS:<br>
>>               return 1;<br>
>><br>
>>           case PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT:<br>
>> diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c<br>
>> index 43f2dfae7ec..129e4af28e1 100644<br>
>> --- a/src/gallium/drivers/r600/r600_pipe.c<br>
>> +++ b/src/gallium/drivers/r600/r600_pipe.c<br>
>> @@ -302,6 +302,7 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)<br>
>>      case PIPE_CAP_CAN_BIND_CONST_BUFFER_AS_VERTEX:<br>
>>      case PIPE_CAP_ALLOW_MAPPED_BUFFERS_DURING_EXECUTION:<br>
>>      case PIPE_CAP_ROBUST_BUFFER_ACCESS_BEHAVIOR:<br>
>> +    case PIPE_CAP_PP_FILTERS:<br>
>>              return 1;<br>
>><br>
>>      case PIPE_CAP_DEVICE_RESET_STATUS_QUERY:<br>
>> diff --git a/src/gallium/drivers/radeonsi/si_get.c b/src/gallium/drivers/radeonsi/si_get.c<br>
>> index fc2be33b3e4..2bf997a712a 100644<br>
>> --- a/src/gallium/drivers/radeonsi/si_get.c<br>
>> +++ b/src/gallium/drivers/radeonsi/si_get.c<br>
>> @@ -275,6 +275,7 @@ static int si_get_param(struct pipe_screen *pscreen, enum pipe_cap param)<br>
>>      case PIPE_CAP_TILE_RASTER_ORDER:<br>
>>      case PIPE_CAP_MAX_COMBINED_SHADER_OUTPUT_RESOURCES:<br>
>>      case PIPE_CAP_CONTEXT_PRIORITY_MASK:<br>
>> +    case PIPE_CAP_PP_FILTERS:<br>
>>              return 0;<br>
>><br>
>>      case PIPE_CAP_FENCE_SIGNAL:<br>
>> diff --git a/src/gallium/drivers/softpipe/sp_screen.c b/src/gallium/drivers/softpipe/sp_screen.c<br>
>> index 25f6f74f366..46d88b72daa 100644<br>
>> --- a/src/gallium/drivers/softpipe/sp_screen.c<br>
>> +++ b/src/gallium/drivers/softpipe/sp_screen.c<br>
>> @@ -68,6 +68,7 @@ softpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)<br>
>>      case PIPE_CAP_NPOT_TEXTURES:<br>
>>      case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES:<br>
>>      case PIPE_CAP_MIXED_COLOR_DEPTH_BITS:<br>
>> +   case PIPE_CAP_PP_FILTERS:<br>
>>         return 1;<br>
>>      case PIPE_CAP_SM3:<br>
>>         return 1;<br>
>> diff --git a/src/gallium/drivers/svga/svga_screen.c b/src/gallium/drivers/svga/svga_screen.c<br>
>> index f5f07fa75eb..68c08b1f7bc 100644<br>
>> --- a/src/gallium/drivers/svga/svga_screen.c<br>
>> +++ b/src/gallium/drivers/svga/svga_screen.c<br>
>> @@ -185,6 +185,7 @@ svga_get_param(struct pipe_screen *screen, enum pipe_cap param)<br>
>>      case PIPE_CAP_NPOT_TEXTURES:<br>
>>      case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES:<br>
>>      case PIPE_CAP_MIXED_COLOR_DEPTH_BITS:<br>
>> +   case PIPE_CAP_PP_FILTERS:<br>
>>         return 1;<br>
>>      case PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS:<br>
>>         /*<br>
>> diff --git a/src/gallium/drivers/swr/swr_screen.cpp b/src/gallium/drivers/swr/swr_screen.cpp<br>
>> index 880a177c399..791f843a6d4 100644<br>
>> --- a/src/gallium/drivers/swr/swr_screen.cpp<br>
>> +++ b/src/gallium/drivers/swr/swr_screen.cpp<br>
>> @@ -245,6 +245,7 @@ swr_get_param(struct pipe_screen *screen, enum pipe_cap param)<br>
>>      case PIPE_CAP_CULL_DISTANCE:<br>
>>      case PIPE_CAP_CUBE_MAP_ARRAY:<br>
>>      case PIPE_CAP_DOUBLES:<br>
>> +   case PIPE_CAP_PP_FILTERS:<br>
>>         return 1;<br>
>><br>
>>      /* MSAA support<br>
>> diff --git a/src/gallium/drivers/vc4/vc4_screen.c b/src/gallium/drivers/vc4/vc4_screen.c<br>
>> index cead71b77cd..9624c91196b 100644<br>
>> --- a/src/gallium/drivers/vc4/vc4_screen.c<br>
>> +++ b/src/gallium/drivers/vc4/vc4_screen.c<br>
>> @@ -146,6 +146,7 @@ vc4_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)<br>
>>           case PIPE_CAP_GLSL_OPTIMIZE_CONSERVATIVELY:<br>
>>           case PIPE_CAP_ALLOW_MAPPED_BUFFERS_DURING_EXECUTION:<br>
>>           case PIPE_CAP_TEXTURE_BARRIER:<br>
>> +        case PIPE_CAP_PP_FILTERS:<br>
>>                   return 1;<br>
>><br>
>>           case PIPE_CAP_TILE_RASTER_ORDER:<br>
>> diff --git a/src/gallium/drivers/vc5/vc5_screen.c b/src/gallium/drivers/vc5/vc5_screen.c<br>
>> index 271c2c878bb..e7356cf9c0a 100644<br>
>> --- a/src/gallium/drivers/vc5/vc5_screen.c<br>
>> +++ b/src/gallium/drivers/vc5/vc5_screen.c<br>
>> @@ -110,6 +110,7 @@ vc5_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)<br>
>>           case PIPE_CAP_DRAW_INDIRECT:<br>
>>           case PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION:<br>
>>           case PIPE_CAP_SIGNED_VERTEX_BUFFER_OFFSET:<br>
>> +        case PIPE_CAP_PP_FILTERS:<br>
>>                   return 1;<br>
>><br>
>>           case PIPE_CAP_INDEP_BLEND_ENABLE:<br>
>> diff --git a/src/gallium/drivers/virgl/virgl_screen.c b/src/gallium/drivers/virgl/virgl_screen.c<br>
>> index 02613f18663..a6555e2667d 100644<br>
>> --- a/src/gallium/drivers/virgl/virgl_screen.c<br>
>> +++ b/src/gallium/drivers/virgl/virgl_screen.c<br>
>> @@ -198,6 +198,8 @@ virgl_get_param(struct pipe_screen *screen, enum pipe_cap param)<br>
>>         return vscreen->caps.caps.v1.bset.has_sample_shading;<br>
>>      case PIPE_CAP_CULL_DISTANCE:<br>
>>         return vscreen->caps.caps.v1.bset.has_cull;<br>
>> +   case PIPE_CAP_PP_FILTERS:<br>
>> +      return 1;<br>
>>      case PIPE_CAP_TEXTURE_GATHER_SM5:<br>
>>      case PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT:<br>
>>      case PIPE_CAP_FAKE_SW_MSAA:<br>
>> diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h<br>
>> index c4ae0532060..25338782f9e 100644<br>
>> --- a/src/gallium/include/pipe/p_defines.h<br>
>> +++ b/src/gallium/include/pipe/p_defines.h<br>
>> @@ -795,6 +795,7 @@ enum pipe_cap<br>
>>      PIPE_CAP_FENCE_SIGNAL,<br>
>>      PIPE_CAP_CONSTBUF0_FLAGS,<br>
>>      PIPE_CAP_PACKED_UNIFORMS,<br>
>> +   PIPE_CAP_PP_FILTERS,<br>
>>   };<br>
>><br>
>>   /**<br>
>> diff --git a/src/gallium/state_trackers/dri/dri_screen.c b/src/gallium/state_trackers/dri/dri_screen.c<br>
>> index aaee9870776..20ce0723665 100644<br>
>> --- a/src/gallium/state_trackers/dri/dri_screen.c<br>
>> +++ b/src/gallium/state_trackers/dri/dri_screen.c<br>
>> @@ -487,13 +487,14 @@ dri_destroy_screen(__DRIscreen * sPriv)<br>
>>   }<br>
>><br>
>>   static void<br>
>> -dri_postprocessing_init(struct dri_screen *screen)<br>
>> +dri_postprocessing_init(struct dri_screen *screen,<br>
>> +                        struct pipe_screen *pscreen)<br>
>>   {<br>
>> -   unsigned i;<br>
>> -<br>
>> -   for (i = 0; i < PP_FILTERS; i++) {<br>
>> -      screen->pp_enabled[i] = driQueryOptioni(&screen->dev->option_cache,<br>
>> -                                              pp_filters[i].name);<br>
>> +   if (pscreen->get_param(pscreen, PIPE_CAP_PP_FILTERS)) {<br>
>> +      for (unsigned i = 0; i < PP_FILTERS; i++) {<br>
>> +         screen->pp_enabled[i] = driQueryOptioni(&screen->dev->option_cache,<br>
>> +                                                 pp_filters[i].name);<br>
>> +      }<br>
>>      }<br>
>>   }<br>
>><br>
>> @@ -542,7 +543,7 @@ dri_init_screen_helper(struct dri_screen *screen,<br>
>>      else<br>
>>         screen->target = PIPE_TEXTURE_RECT;<br>
>><br>
>> -   dri_postprocessing_init(screen);<br>
>> +   dri_postprocessing_init(screen, pscreen);<br>
>><br>
>>      screen->st_api->query_versions(screen->st_api, &screen->base,<br>
>>                                     &screen->options,<br>
>><br>
><br>
</blockquote></div></div></div>