Bug 90149

Summary: [SNB+ Bisected]ES3-CTS.gtf.GL3Tests.uniform_buffer_object.uniform_buffer_object_getactiveuniformsiv_for_nonexistent_uniform_indices fails
Product: Mesa Reporter: lu hua <huax.lu>
Component: Drivers/DRI/i965Assignee: Tapani Pälli <lemody>
Status: VERIFIED FIXED QA Contact: Intel 3D Bugs Mailing List <intel-3d-bugs>
Severity: normal    
Priority: high CC: idr
Version: git   
Hardware: All   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: patch to fix the issue
fix

Description lu hua 2015-04-23 03:01:22 UTC
System Environment:
--------------------------
Platform: HSW
Libdrm:		(master)libdrm-2.4.60-34-g0d78b37b1cac304ce5e84d1207f0a43abd29c000
Mesa:		(master)00bf7d2e9cd60dbd82d25b459c448e11c545a89a
Xserver:	(master)xorg-server-1.17.0-76-gb1029716e41e252f149b82124a149da180607c96
Xf86_video_intel:(master)2.99.917-282-g83b8528773a0b1e6655fa87c9645a0062cee1359
Libva:		(master)062a63932c0f1439aa587aa986bbcfb758ff38f2
Libva_intel_driver:(master)890f538f62707ec07a6accdb65bafcaffc941bb1
Kernel:   (drm-intel-nightly)b9fe357740009b89d4bac30b297bfe9808957e6a

Bug detailed description:
-----------------------------
It fails on SNB+ platforms with mesa master branch, works well on 10.5 branch.(It has different bisect from bug 90109.)

Bisect shows: 7519ddb4d8192f992c4a8b3fff84465b52905958 is the first bad commit.
commit 7519ddb4d8192f992c4a8b3fff84465b52905958
Author:     Tapani Pälli <tapani.palli@intel.com>
AuthorDate: Thu Mar 12 10:17:09 2015 +0200
Commit:     Tapani Pälli <tapani.palli@intel.com>
CommitDate: Thu Apr 16 07:55:57 2015 +0300

    mesa: refactor GetActiveUniformsiv, use _mesa_program_resource_prop

    Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
    Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>

output:
dEQP Core GL-CTS-2.0 (0x0052484b) starting..
  target implementation = 'X11'

Test case 'ES3-CTS.gtf.GL3Tests.uniform_buffer_object.uniform_buffer_object_getactiveuniformsiv_for_nonexistent_uniform_indices'..
INFO:uniform_buffer_object_getactiveuniformsiv_for_nonexistent_uniform_indices:-------------------------------- BEGIN ---------------------------------
ERROR:uniform_buffer_object_getactiveuniformsiv_for_nonexistent_uniform_indices:/GFX/Test/Ogles3conform/ogles3conform/GTF_ES/glsl/GTF/Source/GL3Tests/GTFTestUniformBufferObject.c:7383: "*params was written by glGetActiveUniformsiv()"
INFO:uniform_buffer_object_getactiveuniformsiv_for_nonexistent_uniform_indices:FAILED
INFO:uniform_buffer_object_getactiveuniformsiv_for_nonexistent_uniform_indices:--------------------------------- END ----------------------------------
  Fail (Fail)

DONE!

Test run totals:
  Passed:        0/1 (0.00%)
  Failed:        1/1 (100.00%)
  Not supported: 0/1 (0.00%)
  Warnings:      0/1 (0.00%)

Reproduce steps:
---------------------------- 
1. xinit
2. ./glcts --deqp-case=ES3-CTS.gtf.GL3Tests.uniform_buffer_object.uniform_buffer_object_getactiveuniformsiv_for_nonexistent_uniform_indices --deqp-surface-width=64 --deqp-surface-height=64 --deqp-base-seed=1 --deqp-surface-type=window --deqp-gl-config-id=14
Comment 1 Tapani Pälli 2015-04-23 05:01:34 UTC
I see, with GetActiveUniformsiv if error is generated, nothing should be written to output, not even for valid entries ... this is a terrible API :/ Will fix my implementation to have extra loop for verifying each uniform.
Comment 2 Tapani Pälli 2015-04-23 05:29:17 UTC
I've filed a bug to Khronos about this. I don't think the expectation of the test matches the current specifications where GetActiveUniformsiv should match behavior of GetProgramResourceiv.
Comment 3 Tapani Pälli 2015-04-23 08:17:48 UTC
Created attachment 115287 [details] [review]
patch to fix the issue

here's the changes that change behavior to what the test expects
Comment 4 Tapani Pälli 2015-04-23 11:20:58 UTC
Created attachment 115293 [details] [review]
fix

here's the fix
Comment 5 lu hua 2015-04-24 06:09:11 UTC
(In reply to Tapani Pälli from comment #4)
> Created attachment 115293 [details] [review] [review]
> fix
> 
> here's the fix

Fixed by this patch.
dEQP Core GL-CTS-2.0 (0x0052484b) starting..
  target implementation = 'X11'

Test case 'ES3-CTS.gtf.GL3Tests.uniform_buffer_object.uniform_buffer_object_getactiveuniformsiv_for_nonexistent_uniform_indices'..
INFO:uniform_buffer_object_getactiveuniformsiv_for_nonexistent_uniform_indices:-------------------------------- BEGIN ---------------------------------
INFO:uniform_buffer_object_getactiveuniformsiv_for_nonexistent_uniform_indices:OK
INFO:uniform_buffer_object_getactiveuniformsiv_for_nonexistent_uniform_indices:--------------------------------- END ----------------------------------
  Pass (Pass)

DONE!

Test run totals:
  Passed:        1/1 (100.00%)
  Failed:        0/1 (0.00%)
  Not supported: 0/1 (0.00%)
  Warnings:      0/1 (0.00%)
Comment 6 Tapani Pälli 2015-04-24 10:46:53 UTC
pushed to master
Comment 7 lu hua 2015-04-28 06:12:15 UTC
Verified.Fixed.

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.