Bug 78097

Summary: glUniform1ui and friends not supported by display lists
Product: Mesa Reporter: Ian Romanick <idr>
Component: Mesa coreAssignee: mesa-dev
Status: RESOLVED FIXED QA Contact: Timothy Arceri <t_arceri>
Severity: normal    
Priority: medium    
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Ian Romanick 2014-04-29 23:31:17 UTC
Discovered by inspection while implementing display list support for ARB_separate_shader_objects.  Note the following code in dlist.c:

	 case OPCODE_UNIFORM_1UI:
	    /*CALL_Uniform1uiARB(ctx->Exec, (n[1].i, n[2].i));*/
	    break;
	 case OPCODE_UNIFORM_2UI:
	    /*CALL_Uniform2uiARB(ctx->Exec, (n[1].i, n[2].i, n[3].i));*/
	    break;
	 case OPCODE_UNIFORM_3UI:
	    /*CALL_Uniform3uiARB(ctx->Exec, (n[1].i, n[2].i, n[3].i, n[4].i));*/
	    break;
	 case OPCODE_UNIFORM_4UI:
	    /*CALL_Uniform4uiARB(ctx->Exec,
                              (n[1].i, n[2].i, n[3].i, n[4].i, n[5].i));
            */
	    break;

Someone should adapt tests/spec/arb_separate_shader_objects/dlist.c to be a (new) tests/spec/gl-3.0/dlist.c to test these functions.
Comment 1 Timothy Arceri 2018-05-17 04:02:17 UTC
Fixed by:

commit f71714022b2cd26bb1892e6a7f3d7308515f210e
Author: Timothy Arceri <tarceri@itsqueeze.com>
Date:   Thu May 10 13:42:16 2018 +1000

    mesa: add glUniform*ui{v} support to display lists
    
    Fixes: a017c7ecb7ae "mesa: display list support for uint uniforms"
    
    Reviewed-by: Marek Olšák <marek.olsak@amd.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78097

Piglit test:

commit 6ab75f7eb5e1dccbb773e1739beeb2d7cbd6ad0d
Author: Timothy Arceri <tarceri@itsqueeze.com>
Date:   Thu May 10 13:51:44 2018 +1000

    gl-3.0: test glUniform*ui{v} functions are compiled into display lists
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78097
Comment 2 Lionel Landwerlin 2018-05-17 15:15:52 UTC
Those new piglit tests are now failing on i965 :(
Comment 3 Lionel Landwerlin 2018-05-17 15:27:36 UTC
$ ./bin/gl-3.0-dlist-uint-uniforms -auto -fbo
Testing glUniformui
    GL_COMPILE: scalar mode
        pre-initialize
        compiling
        post-compile verify
            s data does not match.
            v2 data does not match.
            v3 data does not match.
            v4 data does not match.
        restore original values
        post-glCallList verify
            s data does not match.
            v2 data does not match.
            v3 data does not match.
            v4 data does not match.
    GL_COMPILE: vector mode
        pre-initialize
        compiling
        post-compile verify
            s data does not match.
            v2 data does not match.
            v3 data does not match.
            v4 data does not match.
        restore original values
        post-glCallList verify
            s data does not match.
            v2 data does not match.
            v3 data does not match.
            v4 data does not match.
    GL_COMPILE_AND_EXECUTE: scalar mode
        pre-initialize
        compiling
        post-compile verify
        restore original values
        post-glCallList verify
            s data does not match.
            v2 data does not match.
            v3 data does not match.
            v4 data does not match.
    GL_COMPILE_AND_EXECUTE: vector mode
        pre-initialize
        compiling
        post-compile verify
        restore original values
        post-glCallList verify
            s data does not match.
            v2 data does not match.
            v3 data does not match.
            v4 data does not match.
PIGLIT: {"result": "fail" }
Comment 4 Lionel Landwerlin 2018-05-17 16:12:54 UTC
Arg apologies, I was running against the wrong version of Mesa.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.