Am 04.04.2018 um 05:42 schrieb Timothy Arceri: > On 04/04/18 13:22, Roland Scheidegger wrote: >> Am 04.04.2018 um 05:03 schrieb Timothy Arceri: >>> On 04/04/18 12:44, Roland Scheidegger wrote: >>>> Am 04.04.2018 um 04:32 schrieb Timothy Arceri: >>>>> On 04/04/18 11:58, Roland Scheidegger wrote: >>>>>> AFAIK these filters (and I've never looked into them) should be >>>>>> transparent to hw drivers. Hence a cap bit doesn't make sense, and if >>>>>> it's broken we shouldn't just paper over this. >>>>> >>>>> I created a CAP because the AMD devs have no interest in supporting >>>>> this >>>>> feature [1]. Even if they are transparent to drivers I don't see why >>>>> drivers should be forced to enable them if they don't want to. CCing >>>>> Marek for his opinion. >>>> >>>> I still don't see why using cap bits for bugs is a good idea. >>> >>> Well I see it as a CAP for an unwanted feature that just happens to not >>> work currently. >>> >>>> (Even more so if the bug actually would be in the postprocess, but I've >>>> no idea there really.) >>> >>> It's crashing in src/gallium/drivers/radeonsi/si_state_draw.c >> >> Doesn't necessarily mean the bug is in the driver. >> Not sure it's really worth fixing it this way neither - people are >> probably just as confused why pp won't work than they are if it's >> crashing... > > Well I can either update the webpage to say its disabled for radeonsi or > I can close the bugs as won't fix and let people wonder why its crashing > potentially filling another bug report. The first bug was filed a year > ago and nobody seems to want to fix it. Either way I don't care to much > but disabling the feature seems like a better way to go than just > letting it crash forever.
Alright, if the bug is that old I suppose there's really no interest in actually fixing it... So I suppose that would be an improvement... Roland >> >> >> Roland >> >>> >>>> >>>> Roland >>>> >>>>> >>>>> [1] >>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__bugs.freedesktop.org_show-5Fbug.cgi-3Fid-3D99549-23c3&d=DwICaQ&c=uilaK90D4TOVoH58JNXRgQ&r=_QIjpv-UJ77xEQY8fIYoQtr5qv8wKrPJc7v7_-CYAb0&m=s23eRwsegKslN9P2JpzYmfnEOt7uPtVLO6XI3-BR_h4&s=LnLvs_TtyuJE3MWrA16CVWgkwxKkfKCuXHJDbtO3KGo&e= >>>>> >>>>> >>>>> >>>>> >>>>>> >>>>>> Roland >>>>>> >>>>>> Am 03.04.2018 um 13:38 schrieb Timothy Arceri: >>>>>>> For radeonsi these seem to have been somewhat broken for over a >>>>>>> year, and as of recently they cause the driver to crash. >>>>>>> >>>>>>> This patch adds a CAP for the filters and enables the CAP for all >>>>>>> driver except radeonsi. >>>>>>> >>>>>>> Bugzilla: >>>>>>> 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= >>>>>>> >>>>>>> >>>>>>> >>>>>>> Bugzilla: >>>>>>> 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= >>>>>>> >>>>>>> >>>>>>> >>>>>>> --- >>>>>>> src/gallium/docs/source/screen.rst | 2 ++ >>>>>>> src/gallium/drivers/etnaviv/etnaviv_screen.c | 1 + >>>>>>> src/gallium/drivers/freedreno/freedreno_screen.c | 1 + >>>>>>> src/gallium/drivers/i915/i915_screen.c | 1 + >>>>>>> src/gallium/drivers/llvmpipe/lp_screen.c | 1 + >>>>>>> src/gallium/drivers/nouveau/nv30/nv30_screen.c | 1 + >>>>>>> src/gallium/drivers/nouveau/nv50/nv50_screen.c | 1 + >>>>>>> src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 1 + >>>>>>> src/gallium/drivers/r300/r300_screen.c | 1 + >>>>>>> src/gallium/drivers/r600/r600_pipe.c | 1 + >>>>>>> src/gallium/drivers/radeonsi/si_get.c | 1 + >>>>>>> src/gallium/drivers/softpipe/sp_screen.c | 1 + >>>>>>> src/gallium/drivers/svga/svga_screen.c | 1 + >>>>>>> src/gallium/drivers/swr/swr_screen.cpp | 1 + >>>>>>> src/gallium/drivers/vc4/vc4_screen.c | 1 + >>>>>>> src/gallium/drivers/vc5/vc5_screen.c | 1 + >>>>>>> src/gallium/drivers/virgl/virgl_screen.c | 2 ++ >>>>>>> src/gallium/include/pipe/p_defines.h | 1 + >>>>>>> src/gallium/state_trackers/dri/dri_screen.c | 15 >>>>>>> ++++++++------- >>>>>>> 19 files changed, 28 insertions(+), 7 deletions(-) >>>>>>> >>>>>>> diff --git a/src/gallium/docs/source/screen.rst >>>>>>> b/src/gallium/docs/source/screen.rst >>>>>>> index 3837360fb40..22aba928580 100644 >>>>>>> --- a/src/gallium/docs/source/screen.rst >>>>>>> +++ b/src/gallium/docs/source/screen.rst >>>>>>> @@ -420,6 +420,8 @@ The integer capabilities: >>>>>>> by the driver, and the driver can throw assertion failures. >>>>>>> * ``PIPE_CAP_PACKED_UNIFORMS``: True if the driver supports >>>>>>> packed >>>>>>> uniforms >>>>>>> as opposed to padding to vec4s. >>>>>>> +* ``PIPE_CAP_PP_FILTERS``: True if the driver supports the >>>>>>> postprocess filters >>>>>>> + available in gallium. >>>>>>> .. _pipe_capf: >>>>>>> diff --git a/src/gallium/drivers/etnaviv/etnaviv_screen.c >>>>>>> b/src/gallium/drivers/etnaviv/etnaviv_screen.c >>>>>>> index 2ae4e86c631..d277ac834db 100644 >>>>>>> --- a/src/gallium/drivers/etnaviv/etnaviv_screen.c >>>>>>> +++ b/src/gallium/drivers/etnaviv/etnaviv_screen.c >>>>>>> @@ -140,6 +140,7 @@ etna_screen_get_param(struct pipe_screen >>>>>>> *pscreen, enum pipe_cap param) >>>>>>> case PIPE_CAP_TGSI_TEXCOORD: >>>>>>> case PIPE_CAP_VERTEX_COLOR_UNCLAMPED: >>>>>>> case PIPE_CAP_MIXED_COLOR_DEPTH_BITS: >>>>>>> + case PIPE_CAP_PP_FILTERS: >>>>>>> return 1; >>>>>>> case PIPE_CAP_NATIVE_FENCE_FD: >>>>>>> return screen->drm_version >= ETNA_DRM_VERSION_FENCE_FD; >>>>>>> diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c >>>>>>> b/src/gallium/drivers/freedreno/freedreno_screen.c >>>>>>> index f338d756dfe..42ab87514d8 100644 >>>>>>> --- a/src/gallium/drivers/freedreno/freedreno_screen.c >>>>>>> +++ b/src/gallium/drivers/freedreno/freedreno_screen.c >>>>>>> @@ -186,6 +186,7 @@ fd_screen_get_param(struct pipe_screen *pscreen, >>>>>>> enum pipe_cap param) >>>>>>> case PIPE_CAP_MIXED_COLOR_DEPTH_BITS: >>>>>>> case PIPE_CAP_TEXTURE_BARRIER: >>>>>>> case PIPE_CAP_INVALIDATE_BUFFER: >>>>>>> + case PIPE_CAP_PP_FILTERS: >>>>>>> return 1; >>>>>>> case PIPE_CAP_VERTEXID_NOBASE: >>>>>>> diff --git a/src/gallium/drivers/i915/i915_screen.c >>>>>>> b/src/gallium/drivers/i915/i915_screen.c >>>>>>> index 59d2ec66284..8564a8567e4 100644 >>>>>>> --- a/src/gallium/drivers/i915/i915_screen.c >>>>>>> +++ b/src/gallium/drivers/i915/i915_screen.c >>>>>>> @@ -205,6 +205,7 @@ i915_get_param(struct pipe_screen *screen, enum >>>>>>> pipe_cap cap) >>>>>>> case PIPE_CAP_VERTEX_COLOR_CLAMPED: >>>>>>> case PIPE_CAP_USER_VERTEX_BUFFERS: >>>>>>> case PIPE_CAP_MIXED_COLOR_DEPTH_BITS: >>>>>>> + case PIPE_CAP_PP_FILTERS: >>>>>>> return 1; >>>>>>> /* Unsupported features (boolean caps). */ >>>>>>> diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c >>>>>>> b/src/gallium/drivers/llvmpipe/lp_screen.c >>>>>>> index 3f5d0327bf9..9290d3ec869 100644 >>>>>>> --- a/src/gallium/drivers/llvmpipe/lp_screen.c >>>>>>> +++ b/src/gallium/drivers/llvmpipe/lp_screen.c >>>>>>> @@ -110,6 +110,7 @@ llvmpipe_get_param(struct pipe_screen *screen, >>>>>>> enum pipe_cap param) >>>>>>> case PIPE_CAP_NPOT_TEXTURES: >>>>>>> case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES: >>>>>>> case PIPE_CAP_MIXED_COLOR_DEPTH_BITS: >>>>>>> + case PIPE_CAP_PP_FILTERS: >>>>>>> return 1; >>>>>>> case PIPE_CAP_SM3: >>>>>>> return 1; >>>>>>> diff --git a/src/gallium/drivers/nouveau/nv30/nv30_screen.c >>>>>>> b/src/gallium/drivers/nouveau/nv30/nv30_screen.c >>>>>>> index 1d1fbaad607..d3afd0cf493 100644 >>>>>>> --- a/src/gallium/drivers/nouveau/nv30/nv30_screen.c >>>>>>> +++ b/src/gallium/drivers/nouveau/nv30/nv30_screen.c >>>>>>> @@ -94,6 +94,7 @@ nv30_screen_get_param(struct pipe_screen *pscreen, >>>>>>> enum pipe_cap param) >>>>>>> case PIPE_CAP_VERTEX_ELEMENT_SRC_OFFSET_4BYTE_ALIGNED_ONLY: >>>>>>> case PIPE_CAP_PREFER_BLIT_BASED_TEXTURE_TRANSFER: >>>>>>> case PIPE_CAP_ALLOW_MAPPED_BUFFERS_DURING_EXECUTION: >>>>>>> + case PIPE_CAP_PP_FILTERS: >>>>>>> return 1; >>>>>>> /* nv35 capabilities */ >>>>>>> case PIPE_CAP_DEPTH_BOUNDS_TEST: >>>>>>> diff --git a/src/gallium/drivers/nouveau/nv50/nv50_screen.c >>>>>>> b/src/gallium/drivers/nouveau/nv50/nv50_screen.c >>>>>>> index 6fd2982e3cb..643c4516935 100644 >>>>>>> --- a/src/gallium/drivers/nouveau/nv50/nv50_screen.c >>>>>>> +++ b/src/gallium/drivers/nouveau/nv50/nv50_screen.c >>>>>>> @@ -199,6 +199,7 @@ nv50_screen_get_param(struct pipe_screen >>>>>>> *pscreen, enum pipe_cap param) >>>>>>> case PIPE_CAP_TGSI_CLOCK: >>>>>>> case PIPE_CAP_CAN_BIND_CONST_BUFFER_AS_VERTEX: >>>>>>> case PIPE_CAP_ALLOW_MAPPED_BUFFERS_DURING_EXECUTION: >>>>>>> + case PIPE_CAP_PP_FILTERS: >>>>>>> return 1; >>>>>>> case PIPE_CAP_SEAMLESS_CUBE_MAP: >>>>>>> return 1; /* class_3d >= NVA0_3D_CLASS; */ >>>>>>> diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c >>>>>>> b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c >>>>>>> index b4a2c676f59..eb50f12bf76 100644 >>>>>>> --- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c >>>>>>> +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c >>>>>>> @@ -254,6 +254,7 @@ nvc0_screen_get_param(struct pipe_screen >>>>>>> *pscreen, enum pipe_cap param) >>>>>>> case PIPE_CAP_COMPUTE: >>>>>>> case PIPE_CAP_CAN_BIND_CONST_BUFFER_AS_VERTEX: >>>>>>> case PIPE_CAP_ALLOW_MAPPED_BUFFERS_DURING_EXECUTION: >>>>>>> + case PIPE_CAP_PP_FILTERS: >>>>>>> return 1; >>>>>>> case PIPE_CAP_PREFER_BLIT_BASED_TEXTURE_TRANSFER: >>>>>>> return nouveau_screen(pscreen)->vram_domain & >>>>>>> NOUVEAU_BO_VRAM >>>>>>> ? 1 : 0; >>>>>>> diff --git a/src/gallium/drivers/r300/r300_screen.c >>>>>>> b/src/gallium/drivers/r300/r300_screen.c >>>>>>> index 8ea2e87ce68..0f49dcd4c04 100644 >>>>>>> --- a/src/gallium/drivers/r300/r300_screen.c >>>>>>> +++ b/src/gallium/drivers/r300/r300_screen.c >>>>>>> @@ -111,6 +111,7 @@ static int r300_get_param(struct pipe_screen* >>>>>>> pscreen, enum pipe_cap param) >>>>>>> case PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT: >>>>>>> case PIPE_CAP_CLIP_HALFZ: >>>>>>> case PIPE_CAP_ALLOW_MAPPED_BUFFERS_DURING_EXECUTION: >>>>>>> + case PIPE_CAP_PP_FILTERS: >>>>>>> return 1; >>>>>>> case PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT: >>>>>>> diff --git a/src/gallium/drivers/r600/r600_pipe.c >>>>>>> b/src/gallium/drivers/r600/r600_pipe.c >>>>>>> index 43f2dfae7ec..129e4af28e1 100644 >>>>>>> --- a/src/gallium/drivers/r600/r600_pipe.c >>>>>>> +++ b/src/gallium/drivers/r600/r600_pipe.c >>>>>>> @@ -302,6 +302,7 @@ static int r600_get_param(struct pipe_screen* >>>>>>> pscreen, enum pipe_cap param) >>>>>>> case PIPE_CAP_CAN_BIND_CONST_BUFFER_AS_VERTEX: >>>>>>> case PIPE_CAP_ALLOW_MAPPED_BUFFERS_DURING_EXECUTION: >>>>>>> case PIPE_CAP_ROBUST_BUFFER_ACCESS_BEHAVIOR: >>>>>>> + case PIPE_CAP_PP_FILTERS: >>>>>>> return 1; >>>>>>> case PIPE_CAP_DEVICE_RESET_STATUS_QUERY: >>>>>>> diff --git a/src/gallium/drivers/radeonsi/si_get.c >>>>>>> b/src/gallium/drivers/radeonsi/si_get.c >>>>>>> index fc2be33b3e4..2bf997a712a 100644 >>>>>>> --- a/src/gallium/drivers/radeonsi/si_get.c >>>>>>> +++ b/src/gallium/drivers/radeonsi/si_get.c >>>>>>> @@ -275,6 +275,7 @@ static int si_get_param(struct pipe_screen >>>>>>> *pscreen, enum pipe_cap param) >>>>>>> case PIPE_CAP_TILE_RASTER_ORDER: >>>>>>> case PIPE_CAP_MAX_COMBINED_SHADER_OUTPUT_RESOURCES: >>>>>>> case PIPE_CAP_CONTEXT_PRIORITY_MASK: >>>>>>> + case PIPE_CAP_PP_FILTERS: >>>>>>> return 0; >>>>>>> case PIPE_CAP_FENCE_SIGNAL: >>>>>>> diff --git a/src/gallium/drivers/softpipe/sp_screen.c >>>>>>> b/src/gallium/drivers/softpipe/sp_screen.c >>>>>>> index 25f6f74f366..46d88b72daa 100644 >>>>>>> --- a/src/gallium/drivers/softpipe/sp_screen.c >>>>>>> +++ b/src/gallium/drivers/softpipe/sp_screen.c >>>>>>> @@ -68,6 +68,7 @@ softpipe_get_param(struct pipe_screen *screen, >>>>>>> enum >>>>>>> pipe_cap param) >>>>>>> case PIPE_CAP_NPOT_TEXTURES: >>>>>>> case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES: >>>>>>> case PIPE_CAP_MIXED_COLOR_DEPTH_BITS: >>>>>>> + case PIPE_CAP_PP_FILTERS: >>>>>>> return 1; >>>>>>> case PIPE_CAP_SM3: >>>>>>> return 1; >>>>>>> diff --git a/src/gallium/drivers/svga/svga_screen.c >>>>>>> b/src/gallium/drivers/svga/svga_screen.c >>>>>>> index f5f07fa75eb..68c08b1f7bc 100644 >>>>>>> --- a/src/gallium/drivers/svga/svga_screen.c >>>>>>> +++ b/src/gallium/drivers/svga/svga_screen.c >>>>>>> @@ -185,6 +185,7 @@ svga_get_param(struct pipe_screen *screen, enum >>>>>>> pipe_cap param) >>>>>>> case PIPE_CAP_NPOT_TEXTURES: >>>>>>> case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES: >>>>>>> case PIPE_CAP_MIXED_COLOR_DEPTH_BITS: >>>>>>> + case PIPE_CAP_PP_FILTERS: >>>>>>> return 1; >>>>>>> case PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS: >>>>>>> /* >>>>>>> diff --git a/src/gallium/drivers/swr/swr_screen.cpp >>>>>>> b/src/gallium/drivers/swr/swr_screen.cpp >>>>>>> index 880a177c399..791f843a6d4 100644 >>>>>>> --- a/src/gallium/drivers/swr/swr_screen.cpp >>>>>>> +++ b/src/gallium/drivers/swr/swr_screen.cpp >>>>>>> @@ -245,6 +245,7 @@ swr_get_param(struct pipe_screen *screen, enum >>>>>>> pipe_cap param) >>>>>>> case PIPE_CAP_CULL_DISTANCE: >>>>>>> case PIPE_CAP_CUBE_MAP_ARRAY: >>>>>>> case PIPE_CAP_DOUBLES: >>>>>>> + case PIPE_CAP_PP_FILTERS: >>>>>>> return 1; >>>>>>> /* MSAA support >>>>>>> diff --git a/src/gallium/drivers/vc4/vc4_screen.c >>>>>>> b/src/gallium/drivers/vc4/vc4_screen.c >>>>>>> index cead71b77cd..9624c91196b 100644 >>>>>>> --- a/src/gallium/drivers/vc4/vc4_screen.c >>>>>>> +++ b/src/gallium/drivers/vc4/vc4_screen.c >>>>>>> @@ -146,6 +146,7 @@ vc4_screen_get_param(struct pipe_screen >>>>>>> *pscreen, >>>>>>> enum pipe_cap param) >>>>>>> case PIPE_CAP_GLSL_OPTIMIZE_CONSERVATIVELY: >>>>>>> case PIPE_CAP_ALLOW_MAPPED_BUFFERS_DURING_EXECUTION: >>>>>>> case PIPE_CAP_TEXTURE_BARRIER: >>>>>>> + case PIPE_CAP_PP_FILTERS: >>>>>>> return 1; >>>>>>> case PIPE_CAP_TILE_RASTER_ORDER: >>>>>>> diff --git a/src/gallium/drivers/vc5/vc5_screen.c >>>>>>> b/src/gallium/drivers/vc5/vc5_screen.c >>>>>>> index 271c2c878bb..e7356cf9c0a 100644 >>>>>>> --- a/src/gallium/drivers/vc5/vc5_screen.c >>>>>>> +++ b/src/gallium/drivers/vc5/vc5_screen.c >>>>>>> @@ -110,6 +110,7 @@ vc5_screen_get_param(struct pipe_screen >>>>>>> *pscreen, >>>>>>> enum pipe_cap param) >>>>>>> case PIPE_CAP_DRAW_INDIRECT: >>>>>>> case PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION: >>>>>>> case PIPE_CAP_SIGNED_VERTEX_BUFFER_OFFSET: >>>>>>> + case PIPE_CAP_PP_FILTERS: >>>>>>> return 1; >>>>>>> case PIPE_CAP_INDEP_BLEND_ENABLE: >>>>>>> diff --git a/src/gallium/drivers/virgl/virgl_screen.c >>>>>>> b/src/gallium/drivers/virgl/virgl_screen.c >>>>>>> index 02613f18663..a6555e2667d 100644 >>>>>>> --- a/src/gallium/drivers/virgl/virgl_screen.c >>>>>>> +++ b/src/gallium/drivers/virgl/virgl_screen.c >>>>>>> @@ -198,6 +198,8 @@ virgl_get_param(struct pipe_screen *screen, enum >>>>>>> pipe_cap param) >>>>>>> return vscreen->caps.caps.v1.bset.has_sample_shading; >>>>>>> case PIPE_CAP_CULL_DISTANCE: >>>>>>> return vscreen->caps.caps.v1.bset.has_cull; >>>>>>> + case PIPE_CAP_PP_FILTERS: >>>>>>> + return 1; >>>>>>> case PIPE_CAP_TEXTURE_GATHER_SM5: >>>>>>> case PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT: >>>>>>> case PIPE_CAP_FAKE_SW_MSAA: >>>>>>> diff --git a/src/gallium/include/pipe/p_defines.h >>>>>>> b/src/gallium/include/pipe/p_defines.h >>>>>>> index c4ae0532060..25338782f9e 100644 >>>>>>> --- a/src/gallium/include/pipe/p_defines.h >>>>>>> +++ b/src/gallium/include/pipe/p_defines.h >>>>>>> @@ -795,6 +795,7 @@ enum pipe_cap >>>>>>> PIPE_CAP_FENCE_SIGNAL, >>>>>>> PIPE_CAP_CONSTBUF0_FLAGS, >>>>>>> PIPE_CAP_PACKED_UNIFORMS, >>>>>>> + PIPE_CAP_PP_FILTERS, >>>>>>> }; >>>>>>> /** >>>>>>> diff --git a/src/gallium/state_trackers/dri/dri_screen.c >>>>>>> b/src/gallium/state_trackers/dri/dri_screen.c >>>>>>> index aaee9870776..20ce0723665 100644 >>>>>>> --- a/src/gallium/state_trackers/dri/dri_screen.c >>>>>>> +++ b/src/gallium/state_trackers/dri/dri_screen.c >>>>>>> @@ -487,13 +487,14 @@ dri_destroy_screen(__DRIscreen * sPriv) >>>>>>> } >>>>>>> static void >>>>>>> -dri_postprocessing_init(struct dri_screen *screen) >>>>>>> +dri_postprocessing_init(struct dri_screen *screen, >>>>>>> + struct pipe_screen *pscreen) >>>>>>> { >>>>>>> - unsigned i; >>>>>>> - >>>>>>> - for (i = 0; i < PP_FILTERS; i++) { >>>>>>> - screen->pp_enabled[i] = >>>>>>> driQueryOptioni(&screen->dev->option_cache, >>>>>>> - pp_filters[i].name); >>>>>>> + if (pscreen->get_param(pscreen, PIPE_CAP_PP_FILTERS)) { >>>>>>> + for (unsigned i = 0; i < PP_FILTERS; i++) { >>>>>>> + screen->pp_enabled[i] = >>>>>>> driQueryOptioni(&screen->dev->option_cache, >>>>>>> + >>>>>>> pp_filters[i].name); >>>>>>> + } >>>>>>> } >>>>>>> } >>>>>>> @@ -542,7 +543,7 @@ dri_init_screen_helper(struct dri_screen >>>>>>> *screen, >>>>>>> else >>>>>>> screen->target = PIPE_TEXTURE_RECT; >>>>>>> - dri_postprocessing_init(screen); >>>>>>> + dri_postprocessing_init(screen, pscreen); >>>>>>> screen->st_api->query_versions(screen->st_api, >>>>>>> &screen->base, >>>>>>> &screen->options, >>>>>>> >>>>>> >>>> >>>> _______________________________________________ >>>> mesa-dev mailing list >>>> mesa-dev@lists.freedesktop.org >>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.freedesktop.org_mailman_listinfo_mesa-2Ddev&d=DwIDaQ&c=uilaK90D4TOVoH58JNXRgQ&r=_QIjpv-UJ77xEQY8fIYoQtr5qv8wKrPJc7v7_-CYAb0&m=IQDobQht8BYpMEDUnDRvlhX9aAaZjJPys-sCY3FSmKQ&s=NX5zWPQXBMzxQOnjEHZOfHGOV0nP-Cpg1Cn3tcAIhIA&e= >>>> >>>> >>>> >> >> _______________________________________________ >> mesa-dev mailing list >> mesa-dev@lists.freedesktop.org >> https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.freedesktop.org_mailman_listinfo_mesa-2Ddev&d=DwIDaQ&c=uilaK90D4TOVoH58JNXRgQ&r=_QIjpv-UJ77xEQY8fIYoQtr5qv8wKrPJc7v7_-CYAb0&m=3oiLyHnqXPR83eGdArD-J6HHUvU-RRv-kok3UZnf3qo&s=i4SmSZbXKBzBNIf109t8yq-9c0imNmH5W8q8z23pLQs&e= >> >> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev