Re: [Mesa-dev] [PATCH] dri_util: remove ALLOW_RGB10_CONFIGS option (v2)
Hi; On 11.01.2018 20:20, Mario Kleiner wrote: On 01/11/2018 09:14 AM, Tapani Pälli wrote: Yes, but as it broke regular visuals (on some of our testing machines as well) we needed a fast fix for this. While this is an issue, I think the visual corruption has higher priority than this. This can be fixed meanwhile or afterwards when things work OK. Now it can be toggled true in intel_screen.c when debugging/investigating the issue. That regression in Bug 104536, could you only reproduce it on "Ubuntu 16.04 or 17.04 respectively, with latest git versions of libdrm, mesa, xserver, xlibs, and the drm-tip kernel." as David Weinehall reported in private message? So far this has been only seen in CI machines. (I've been busy with something else ATM but I will also try to get to this one soon.) Does it require X-Server from git master? Yes, this is how those machines do, it's the latest components of the graphics stack. Because testing here on Intel Ivybridge and Skylake with KUbuntu 16.04.3 LTS and the distribution-provided X-Server 1.19.3 and the Unity-7 + Compiz standard Ubuntu 16.04 GUI, i can't reproduce the visual corruption from that screenshot in bug 104536?, neither with the intel-ddx nor the modesetting-ddx used by default, neither depth 24 nor depth 30. What I've understood (from some bugs related to problems with sRGB visuals) is that with X server master there are a lot more visuals in general and as example can be multiple 32bit visuals (which did not happen before). This could possibly explain why these issues cannot be reproduced on LTS provided Xorg. // Tapani ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH] dri_util: remove ALLOW_RGB10_CONFIGS option (v2)
On 01/11/2018 09:14 AM, Tapani Pälli wrote: Yes, but as it broke regular visuals (on some of our testing machines as well) we needed a fast fix for this. While this is an issue, I think the visual corruption has higher priority than this. This can be fixed meanwhile or afterwards when things work OK. Now it can be toggled true in intel_screen.c when debugging/investigating the issue. That regression in Bug 104536, could you only reproduce it on "Ubuntu 16.04 or 17.04 respectively, with latest git versions of libdrm, mesa, xserver, xlibs, and the drm-tip kernel." as David Weinehall reported in private message? Does it require X-Server from git master? Because testing here on Intel Ivybridge and Skylake with KUbuntu 16.04.3 LTS and the distribution-provided X-Server 1.19.3 and the Unity-7 + Compiz standard Ubuntu 16.04 GUI, i can't reproduce the visual corruption from that screenshot in bug 104536?, neither with the intel-ddx nor the modesetting-ddx used by default, neither depth 24 nor depth 30. -mario ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH] dri_util: remove ALLOW_RGB10_CONFIGS option (v2)
On 01/11/2018 02:39 PM, Marek Olšák wrote: On Jan 11, 2018 7:14 AM, "Mario Kleiner"> wrote: On 01/10/2018 07:04 AM, Tapani Pälli wrote: Hi Marek; This one works but only if you add DRI_CONF_ALLOW_RGB10_CONFIGS("false") to the DRI_CONF_SECTION_MISCELLANEOUS section in intel_screen. With that change: Reviewed-by: Tapani Pälli > With this patch now committed to master, rgb10 visuals on i965 are completely dead, as far as my testing goes. rgb10 is always off, and the 'allow_rgb10_configs' option in drirc gets ignored for enumeration of visuals/fbconfigs, e.g., in glxinfo. Before it worked on my machines, defaulted to on, and could be controlled via drirc. As far as i can see, setting up >optionCache for i965 happens too late, only at glXCreateContext() time -> brwCreateContext() -> brw_process_driconf_options(). The old way read the options file as part of driCreateNewScreen2(), which was called as part of __glXInitialize, e.g., from glXChooseVisual() -- early enough to affect the enumeration/selection of visuals. So i don't know if the old way was the right way, but it did give the right behavior for i965 whereas the new one doesn't. Ideas? I think that's not completely true. I965 loads drirc options for each screen and then again for each context, which is weird. Generally, the screen object isn't allowed to be modified by glXCreateContext. Marek Ok, the patch just sent out retains the new way of things, and defaults i965 to rgb10 off, but parses drirc again, so one can enable it via a snippet. Tested under Wayland+Weston and X11 XOrg Server 1.19.3 with GLX and EGL apps. -mario -mario On 01/09/2018 04:04 PM, Marek Olšák wrote: From: Marek Olšák > This is unused because it's for libGL/libEGL, not drivers. v2: i965 was wrong, because it used dri_util instead of its own config. --- src/mesa/drivers/dri/common/dri_util.c | 4 src/mesa/drivers/dri/i965/intel_screen.c | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/mesa/drivers/dri/common/dri_util.c b/src/mesa/drivers/dri/common/dri_util.c index d4fba0b..e6a7d23 100644 --- a/src/mesa/drivers/dri/common/dri_util.c +++ b/src/mesa/drivers/dri/common/dri_util.c @@ -48,24 +48,20 @@ #include "main/version.h" #include "main/debug_output.h" #include "main/errors.h" #include "main/macros.h" const char __dri2ConfigOptions[] = DRI_CONF_BEGIN DRI_CONF_SECTION_PERFORMANCE DRI_CONF_VBLANK_MODE(DRI_CONF_VBLANK_DEF_INTERVAL_1) DRI_CONF_SECTION_END - - DRI_CONF_SECTION_MISCELLANEOUS - DRI_CONF_ALLOW_RGB10_CONFIGS("true") - DRI_CONF_SECTION_END DRI_CONF_END; /*/ /** \name Screen handling functions */ /*/ /*@{*/ static void setupLoaderExtensions(__DRIscreen *psp, const __DRIextension **extensions) diff --git a/src/mesa/drivers/dri/i965/intel_screen.c b/src/mesa/drivers/dri/i965/intel_screen.c index 3e016b5..89db821 100644 --- a/src/mesa/drivers/dri/i965/intel_screen.c +++ b/src/mesa/drivers/dri/i965/intel_screen.c @@ -2057,21 +2057,21 @@ intel_screen_make_configs(__DRIscreen *dri_screen) __DRIconfig **configs = NULL; /* Expose only BGRA ordering if the loader doesn't support RGBA ordering. */ unsigned num_formats; if (intel_loader_get_cap(dri_screen, DRI_LOADER_CAP_RGBA_ORDERING)) num_formats = ARRAY_SIZE(formats); else num_formats = ARRAY_SIZE(formats) - 2; /* all - RGBA_ORDERING formats */ /* Shall we expose 10 bpc formats? */ - bool allow_rgb10_configs = driQueryOptionb(_screen->optionCache, + bool allow_rgb10_configs = driQueryOptionb(>optionCache, "allow_rgb10_configs"); /* Generate singlesample configs without accumulation buffer. */
Re: [Mesa-dev] [PATCH] dri_util: remove ALLOW_RGB10_CONFIGS option (v2)
On Jan 11, 2018 7:14 AM, "Mario Kleiner"wrote: On 01/10/2018 07:04 AM, Tapani Pälli wrote: > Hi Marek; > > This one works but only if you add > > DRI_CONF_ALLOW_RGB10_CONFIGS("false") > > to the DRI_CONF_SECTION_MISCELLANEOUS section in intel_screen. With that > change: Reviewed-by: Tapani Pälli > > With this patch now committed to master, rgb10 visuals on i965 are completely dead, as far as my testing goes. rgb10 is always off, and the 'allow_rgb10_configs' option in drirc gets ignored for enumeration of visuals/fbconfigs, e.g., in glxinfo. Before it worked on my machines, defaulted to on, and could be controlled via drirc. As far as i can see, setting up >optionCache for i965 happens too late, only at glXCreateContext() time -> brwCreateContext() -> brw_process_driconf_options(). The old way read the options file as part of driCreateNewScreen2(), which was called as part of __glXInitialize, e.g., from glXChooseVisual() -- early enough to affect the enumeration/selection of visuals. So i don't know if the old way was the right way, but it did give the right behavior for i965 whereas the new one doesn't. Ideas? I think that's not completely true. I965 loads drirc options for each screen and then again for each context, which is weird. Generally, the screen object isn't allowed to be modified by glXCreateContext. Marek -mario > On 01/09/2018 04:04 PM, Marek Olšák wrote: > >> From: Marek Olšák >> >> This is unused because it's for libGL/libEGL, not drivers. >> >> v2: i965 was wrong, because it used dri_util instead of its own config. >> --- >> src/mesa/drivers/dri/common/dri_util.c | 4 >> src/mesa/drivers/dri/i965/intel_screen.c | 2 +- >> 2 files changed, 1 insertion(+), 5 deletions(-) >> >> diff --git a/src/mesa/drivers/dri/common/dri_util.c >> b/src/mesa/drivers/dri/common/dri_util.c >> index d4fba0b..e6a7d23 100644 >> --- a/src/mesa/drivers/dri/common/dri_util.c >> +++ b/src/mesa/drivers/dri/common/dri_util.c >> @@ -48,24 +48,20 @@ >> #include "main/version.h" >> #include "main/debug_output.h" >> #include "main/errors.h" >> #include "main/macros.h" >> const char __dri2ConfigOptions[] = >> DRI_CONF_BEGIN >> DRI_CONF_SECTION_PERFORMANCE >>DRI_CONF_VBLANK_MODE(DRI_CONF_VBLANK_DEF_INTERVAL_1) >> DRI_CONF_SECTION_END >> - >> - DRI_CONF_SECTION_MISCELLANEOUS >> - DRI_CONF_ALLOW_RGB10_CONFIGS("true") >> - DRI_CONF_SECTION_END >> DRI_CONF_END; >> /*/ >> /** \name Screen handling functions */ >> /*/ >> /*@{*/ >> static void >> setupLoaderExtensions(__DRIscreen *psp, >> const __DRIextension **extensions) >> diff --git a/src/mesa/drivers/dri/i965/intel_screen.c >> b/src/mesa/drivers/dri/i965/intel_screen.c >> index 3e016b5..89db821 100644 >> --- a/src/mesa/drivers/dri/i965/intel_screen.c >> +++ b/src/mesa/drivers/dri/i965/intel_screen.c >> @@ -2057,21 +2057,21 @@ intel_screen_make_configs(__DRIscreen >> *dri_screen) >> __DRIconfig **configs = NULL; >> /* Expose only BGRA ordering if the loader doesn't support RGBA >> ordering. */ >> unsigned num_formats; >> if (intel_loader_get_cap(dri_screen, DRI_LOADER_CAP_RGBA_ORDERING)) >> num_formats = ARRAY_SIZE(formats); >> else >> num_formats = ARRAY_SIZE(formats) - 2; /* all - RGBA_ORDERING >> formats */ >> /* Shall we expose 10 bpc formats? */ >> - bool allow_rgb10_configs = driQueryOptionb(_screen->optionCache, >> + bool allow_rgb10_configs = driQueryOptionb(>optionCache, >> "allow_rgb10_configs"); >> /* Generate singlesample configs without accumulation buffer. */ >> for (unsigned i = 0; i < num_formats; i++) { >> __DRIconfig **new_configs; >> int num_depth_stencil_bits = 2; >> if (!allow_rgb10_configs && >> (formats[i] == MESA_FORMAT_B10G10R10A2_UNORM || >> formats[i] == MESA_FORMAT_B10G10R10X2_UNORM)) >> >> ___ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev > ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH] dri_util: remove ALLOW_RGB10_CONFIGS option (v2)
On 01/11/2018 08:14 AM, Mario Kleiner wrote: On 01/10/2018 07:04 AM, Tapani Pälli wrote: Hi Marek; This one works but only if you add DRI_CONF_ALLOW_RGB10_CONFIGS("false") to the DRI_CONF_SECTION_MISCELLANEOUS section in intel_screen. With that change: Reviewed-by: Tapani PälliWith this patch now committed to master, rgb10 visuals on i965 are completely dead, as far as my testing goes. rgb10 is always off, and the 'allow_rgb10_configs' option in drirc gets ignored for enumeration of visuals/fbconfigs, e.g., in glxinfo. Before it worked on my machines, defaulted to on, and could be controlled via drirc. Yes, but as it broke regular visuals (on some of our testing machines as well) we needed a fast fix for this. As far as i can see, setting up >optionCache for i965 happens too late, only at glXCreateContext() time -> brwCreateContext() -> brw_process_driconf_options(). The old way read the options file as part of driCreateNewScreen2(), which was called as part of __glXInitialize, e.g., from glXChooseVisual() -- early enough to affect the enumeration/selection of visuals. So i don't know if the old way was the right way, but it did give the right behavior for i965 whereas the new one doesn't. Ideas? While this is an issue, I think the visual corruption has higher priority than this. This can be fixed meanwhile or afterwards when things work OK. Now it can be toggled true in intel_screen.c when debugging/investigating the issue. -mario On 01/09/2018 04:04 PM, Marek Olšák wrote: From: Marek Olšák This is unused because it's for libGL/libEGL, not drivers. v2: i965 was wrong, because it used dri_util instead of its own config. --- src/mesa/drivers/dri/common/dri_util.c | 4 src/mesa/drivers/dri/i965/intel_screen.c | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/mesa/drivers/dri/common/dri_util.c b/src/mesa/drivers/dri/common/dri_util.c index d4fba0b..e6a7d23 100644 --- a/src/mesa/drivers/dri/common/dri_util.c +++ b/src/mesa/drivers/dri/common/dri_util.c @@ -48,24 +48,20 @@ #include "main/version.h" #include "main/debug_output.h" #include "main/errors.h" #include "main/macros.h" const char __dri2ConfigOptions[] = DRI_CONF_BEGIN DRI_CONF_SECTION_PERFORMANCE DRI_CONF_VBLANK_MODE(DRI_CONF_VBLANK_DEF_INTERVAL_1) DRI_CONF_SECTION_END - - DRI_CONF_SECTION_MISCELLANEOUS - DRI_CONF_ALLOW_RGB10_CONFIGS("true") - DRI_CONF_SECTION_END DRI_CONF_END; /*/ /** \name Screen handling functions */ /*/ /*@{*/ static void setupLoaderExtensions(__DRIscreen *psp, const __DRIextension **extensions) diff --git a/src/mesa/drivers/dri/i965/intel_screen.c b/src/mesa/drivers/dri/i965/intel_screen.c index 3e016b5..89db821 100644 --- a/src/mesa/drivers/dri/i965/intel_screen.c +++ b/src/mesa/drivers/dri/i965/intel_screen.c @@ -2057,21 +2057,21 @@ intel_screen_make_configs(__DRIscreen *dri_screen) __DRIconfig **configs = NULL; /* Expose only BGRA ordering if the loader doesn't support RGBA ordering. */ unsigned num_formats; if (intel_loader_get_cap(dri_screen, DRI_LOADER_CAP_RGBA_ORDERING)) num_formats = ARRAY_SIZE(formats); else num_formats = ARRAY_SIZE(formats) - 2; /* all - RGBA_ORDERING formats */ /* Shall we expose 10 bpc formats? */ - bool allow_rgb10_configs = driQueryOptionb(_screen->optionCache, + bool allow_rgb10_configs = driQueryOptionb(>optionCache, "allow_rgb10_configs"); /* Generate singlesample configs without accumulation buffer. */ for (unsigned i = 0; i < num_formats; i++) { __DRIconfig **new_configs; int num_depth_stencil_bits = 2; if (!allow_rgb10_configs && (formats[i] == MESA_FORMAT_B10G10R10A2_UNORM || formats[i] == MESA_FORMAT_B10G10R10X2_UNORM)) ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH] dri_util: remove ALLOW_RGB10_CONFIGS option (v2)
On 01/10/2018 07:04 AM, Tapani Pälli wrote: Hi Marek; This one works but only if you add DRI_CONF_ALLOW_RGB10_CONFIGS("false") to the DRI_CONF_SECTION_MISCELLANEOUS section in intel_screen. With that change: Reviewed-by: Tapani PälliWith this patch now committed to master, rgb10 visuals on i965 are completely dead, as far as my testing goes. rgb10 is always off, and the 'allow_rgb10_configs' option in drirc gets ignored for enumeration of visuals/fbconfigs, e.g., in glxinfo. Before it worked on my machines, defaulted to on, and could be controlled via drirc. As far as i can see, setting up >optionCache for i965 happens too late, only at glXCreateContext() time -> brwCreateContext() -> brw_process_driconf_options(). The old way read the options file as part of driCreateNewScreen2(), which was called as part of __glXInitialize, e.g., from glXChooseVisual() -- early enough to affect the enumeration/selection of visuals. So i don't know if the old way was the right way, but it did give the right behavior for i965 whereas the new one doesn't. Ideas? -mario On 01/09/2018 04:04 PM, Marek Olšák wrote: From: Marek Olšák This is unused because it's for libGL/libEGL, not drivers. v2: i965 was wrong, because it used dri_util instead of its own config. --- src/mesa/drivers/dri/common/dri_util.c | 4 src/mesa/drivers/dri/i965/intel_screen.c | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/mesa/drivers/dri/common/dri_util.c b/src/mesa/drivers/dri/common/dri_util.c index d4fba0b..e6a7d23 100644 --- a/src/mesa/drivers/dri/common/dri_util.c +++ b/src/mesa/drivers/dri/common/dri_util.c @@ -48,24 +48,20 @@ #include "main/version.h" #include "main/debug_output.h" #include "main/errors.h" #include "main/macros.h" const char __dri2ConfigOptions[] = DRI_CONF_BEGIN DRI_CONF_SECTION_PERFORMANCE DRI_CONF_VBLANK_MODE(DRI_CONF_VBLANK_DEF_INTERVAL_1) DRI_CONF_SECTION_END - - DRI_CONF_SECTION_MISCELLANEOUS - DRI_CONF_ALLOW_RGB10_CONFIGS("true") - DRI_CONF_SECTION_END DRI_CONF_END; /*/ /** \name Screen handling functions */ /*/ /*@{*/ static void setupLoaderExtensions(__DRIscreen *psp, const __DRIextension **extensions) diff --git a/src/mesa/drivers/dri/i965/intel_screen.c b/src/mesa/drivers/dri/i965/intel_screen.c index 3e016b5..89db821 100644 --- a/src/mesa/drivers/dri/i965/intel_screen.c +++ b/src/mesa/drivers/dri/i965/intel_screen.c @@ -2057,21 +2057,21 @@ intel_screen_make_configs(__DRIscreen *dri_screen) __DRIconfig **configs = NULL; /* Expose only BGRA ordering if the loader doesn't support RGBA ordering. */ unsigned num_formats; if (intel_loader_get_cap(dri_screen, DRI_LOADER_CAP_RGBA_ORDERING)) num_formats = ARRAY_SIZE(formats); else num_formats = ARRAY_SIZE(formats) - 2; /* all - RGBA_ORDERING formats */ /* Shall we expose 10 bpc formats? */ - bool allow_rgb10_configs = driQueryOptionb(_screen->optionCache, + bool allow_rgb10_configs = driQueryOptionb(>optionCache, "allow_rgb10_configs"); /* Generate singlesample configs without accumulation buffer. */ for (unsigned i = 0; i < num_formats; i++) { __DRIconfig **new_configs; int num_depth_stencil_bits = 2; if (!allow_rgb10_configs && (formats[i] == MESA_FORMAT_B10G10R10A2_UNORM || formats[i] == MESA_FORMAT_B10G10R10X2_UNORM)) ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH] dri_util: remove ALLOW_RGB10_CONFIGS option (v2)
Hi Marek; This one works but only if you add DRI_CONF_ALLOW_RGB10_CONFIGS("false") to the DRI_CONF_SECTION_MISCELLANEOUS section in intel_screen. With that change: Reviewed-by: Tapani PälliOn 01/09/2018 04:04 PM, Marek Olšák wrote: From: Marek Olšák This is unused because it's for libGL/libEGL, not drivers. v2: i965 was wrong, because it used dri_util instead of its own config. --- src/mesa/drivers/dri/common/dri_util.c | 4 src/mesa/drivers/dri/i965/intel_screen.c | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/mesa/drivers/dri/common/dri_util.c b/src/mesa/drivers/dri/common/dri_util.c index d4fba0b..e6a7d23 100644 --- a/src/mesa/drivers/dri/common/dri_util.c +++ b/src/mesa/drivers/dri/common/dri_util.c @@ -48,24 +48,20 @@ #include "main/version.h" #include "main/debug_output.h" #include "main/errors.h" #include "main/macros.h" const char __dri2ConfigOptions[] = DRI_CONF_BEGIN DRI_CONF_SECTION_PERFORMANCE DRI_CONF_VBLANK_MODE(DRI_CONF_VBLANK_DEF_INTERVAL_1) DRI_CONF_SECTION_END - - DRI_CONF_SECTION_MISCELLANEOUS - DRI_CONF_ALLOW_RGB10_CONFIGS("true") - DRI_CONF_SECTION_END DRI_CONF_END; /*/ /** \name Screen handling functions */ /*/ /*@{*/ static void setupLoaderExtensions(__DRIscreen *psp, const __DRIextension **extensions) diff --git a/src/mesa/drivers/dri/i965/intel_screen.c b/src/mesa/drivers/dri/i965/intel_screen.c index 3e016b5..89db821 100644 --- a/src/mesa/drivers/dri/i965/intel_screen.c +++ b/src/mesa/drivers/dri/i965/intel_screen.c @@ -2057,21 +2057,21 @@ intel_screen_make_configs(__DRIscreen *dri_screen) __DRIconfig **configs = NULL; /* Expose only BGRA ordering if the loader doesn't support RGBA ordering. */ unsigned num_formats; if (intel_loader_get_cap(dri_screen, DRI_LOADER_CAP_RGBA_ORDERING)) num_formats = ARRAY_SIZE(formats); else num_formats = ARRAY_SIZE(formats) - 2; /* all - RGBA_ORDERING formats */ /* Shall we expose 10 bpc formats? */ - bool allow_rgb10_configs = driQueryOptionb(_screen->optionCache, + bool allow_rgb10_configs = driQueryOptionb(>optionCache, "allow_rgb10_configs"); /* Generate singlesample configs without accumulation buffer. */ for (unsigned i = 0; i < num_formats; i++) { __DRIconfig **new_configs; int num_depth_stencil_bits = 2; if (!allow_rgb10_configs && (formats[i] == MESA_FORMAT_B10G10R10A2_UNORM || formats[i] == MESA_FORMAT_B10G10R10X2_UNORM)) ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev