[Piglit] [PATCH v2] winsys-framework Default to showing window
Dave Airlie
airlied at gmail.com
Tue Nov 17 12:01:58 PST 2015
On 18 November 2015 at 05:49, Arthur Huillet <arthur.huillet at free.fr> wrote:
> Thanks :)
>
> Reviewed by: Arthur Huillet <ahuillet at nvidia.com>
Reviewed-by: Dave Airlie <airlied at redhat.com>
>
> On Tue, 17 Nov 2015 11:33:31 -0800
> Alex Goins <agoins at nvidia.com> wrote:
>
>> From: agoins <agoins at nvidia.com>
>>
>> winsys-framework incorrectly assumed that it will always have ownership of the
>> pixels in its own buffers. If using the default framebuffer (i.e., when Piglit
>> is not running in FBO mode,) ownership will not be acquired unless the window is
>> mapped.
>>
>> While this is not typically a problem because buffers are separate, NVIDIA's
>> Unified Back Buffer feature makes all windows share a back buffer while still
>> conforming to the OpenGL spec. If Piglit does not establish pixel ownership, its
>> output will be clobbered by other windows.
>>
>> While this problem could be easily fixed by specifying PIGLIT_FORCE_WINDOW=1 or
>> -fbo, the current default takes advantage of undefined behavior in the OpenGL
>> spec. A better solution would be to replace PIGLIT_FORCE_WINDOW with
>> PIGLIT_NO_WINDOW, a flag that allows tests to be run without mapping a window or
>> using an FBO. The default behavior, the, would be to map a window. Really,
>> though, if users want to test with offscreen rendering, they should use FBOs
>> with flag -fbo.
>>
>> More information on pixel ownership here:
>> https://www.opengl.org/documentation/specs/version1.1/glspec1.1/node94.html
>> ---
>> .../piglit-framework-gl/piglit_winsys_framework.c | 20 ++++++++++----------
>> 1 file changed, 10 insertions(+), 10 deletions(-)
>>
>> diff --git a/tests/util/piglit-framework-gl/piglit_winsys_framework.c b/tests/util/piglit-framework-gl/piglit_winsys_framework.c
>> index c80e972..ff3428a 100644
>> --- a/tests/util/piglit-framework-gl/piglit_winsys_framework.c
>> +++ b/tests/util/piglit-framework-gl/piglit_winsys_framework.c
>> @@ -53,18 +53,18 @@ run_test(struct piglit_gl_framework *gl_fw,
>> int argc, char *argv[])
>> {
>> struct piglit_winsys_framework *winsys_fw = piglit_winsys_framework(gl_fw);
>> - bool force_window = false;
>> - const char *env_force_window = getenv("PIGLIT_FORCE_WINDOW");
>> + bool no_window = false;
>> + const char *env_no_window = getenv("PIGLIT_NO_WINDOW");
>>
>>
>> - if (env_force_window != NULL) {
>> - if (strcmp(env_force_window, "0") == 0) {
>> - force_window = false;
>> - } else if (strcmp(env_force_window, "1") == 0) {
>> - force_window = true;
>> + if (env_no_window != NULL) {
>> + if (strcmp(env_no_window, "0") == 0) {
>> + no_window = false;
>> + } else if (strcmp(env_no_window, "1") == 0) {
>> + no_window = true;
>> } else {
>> - fprintf(stderr, "PIGLIT_FORCE_WINDOW has invalid"
>> - " value: %s\n", env_force_window);
>> + fprintf(stderr, "PIGLIT_NO_WINDOW has invalid"
>> + " value: %s\n", env_no_window);
>> abort();
>> }
>> }
>> @@ -73,7 +73,7 @@ run_test(struct piglit_gl_framework *gl_fw,
>> gl_fw->test_config->init(argc, argv);
>>
>> if (!gl_fw->test_config->requires_displayed_window &&
>> - piglit_automatic && !force_window) {
>> + piglit_automatic && no_window) {
>> enum piglit_result result = PIGLIT_PASS;
>> if (gl_fw->test_config->display)
>> result = gl_fw->test_config->display();
>> --
>> 1.9.1
>>
>>
>> -----------------------------------------------------------------------------------
>> This email message is for the sole use of the intended recipient(s) and may contain
>> confidential information. Any unauthorized review, use, disclosure or distribution
>> is prohibited. If you are not the intended recipient, please contact the sender by
>> reply email and destroy all copies of the original message.
>> -----------------------------------------------------------------------------------
>>
>
>
> --
> Greetings,
> A. Huillet
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/piglit
More information about the Piglit
mailing list