Bug 81157 - [BDW]Piglit some spec_glsl-1.50_execution_built-in-functions* cases fail
Summary: [BDW]Piglit some spec_glsl-1.50_execution_built-in-functions* cases fail
Status: VERIFIED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/i965 (show other bugs)
Version: unspecified
Hardware: All Linux (All)
: medium normal
Assignee: Kenneth Graunke
QA Contact: Intel 3D Bugs Mailing List
URL:
Whiteboard:
Keywords:
: 81156 (view as bug list)
Depends on:
Blocks:
 
Reported: 2014-07-10 08:19 UTC by lu hua
Modified: 2014-07-17 05:22 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments

Description lu hua 2014-07-10 08:19:52 UTC
System Environment:
--------------------------
Platform: Broadwell
Libdrm:		(master)libdrm-2.4.54-17-ge8c3c1358ecaf4e90f7d43762357ae6f8e2022b6
Mesa:		(master)50bbe49c330095ba451d0f48c56759d148a609c2
Xserver:	(master)xorg-server-1.15.99.902-121-g2f5cf9ff9a0f713b7e038636484c77f113a5f10a
Xf86_video_intel:(master)2.99.912-227-g8587b2fff218537c6ff568ac3ef561f0d39f03ff
Libva:		(master)c61d8c6ce9ffc27320e9e177c1e1123d5f1b5014
Libva_intel_driver:(master)c5cb17ea86f0065a939d3636dd26651c93d497c8
Kernel: drm-intel-nightly/ed4d04defe2c6962efe8f4ba3587a8e69e06d2dd

Bug detailed description:
------------------------- 
Some new cases spec_glsl-1.50_execution_built-in-functions* fail on Broadwell with Mesa master branch and Mesa 10.2 branch.

spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-abs-neg-int-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-abs-neg-int-ivec2
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-abs-neg-int-ivec3
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-abs-neg-int-ivec4
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-abs-neg-ivec2-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-abs-neg-ivec2-ivec2
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-abs-neg-ivec3-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-abs-neg-ivec3-ivec3
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-abs-neg-ivec4-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-abs-neg-ivec4-ivec4
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-abs-not-int-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-abs-not-int-ivec2
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-abs-not-int-ivec3
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-abs-not-int-ivec4
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-abs-not-ivec2-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-abs-not-ivec2-ivec2
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-abs-not-ivec3-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-abs-not-ivec3-ivec3
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-abs-not-ivec4-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-abs-not-ivec4-ivec4
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-not-abs-int-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-not-abs-int-ivec2
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-not-abs-int-ivec3
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-not-abs-int-ivec4
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-not-abs-ivec2-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-not-abs-ivec2-ivec2
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-not-abs-ivec3-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-not-abs-ivec3-ivec3
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-not-abs-ivec4-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitand-not-abs-ivec4-ivec4
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-abs-neg-int-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-abs-neg-int-ivec2
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-abs-neg-int-ivec3
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-abs-neg-int-ivec4
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-abs-neg-ivec2-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-abs-neg-ivec2-ivec2
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-abs-neg-ivec3-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-abs-neg-ivec3-ivec3
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-abs-neg-ivec4-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-abs-neg-ivec4-ivec4
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-abs-not-int-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-abs-not-int-ivec2
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-abs-not-int-ivec3
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-abs-not-int-ivec4
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-abs-not-ivec2-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-abs-not-ivec2-ivec2
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-abs-not-ivec3-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-abs-not-ivec3-ivec3
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-abs-not-ivec4-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-abs-not-ivec4-ivec4
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-not-abs-int-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-not-abs-int-ivec2
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-not-abs-int-ivec3
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-not-abs-int-ivec4
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-not-abs-ivec2-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-not-abs-ivec2-ivec2
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-not-abs-ivec3-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-not-abs-ivec3-ivec3
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-not-abs-ivec4-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitor-not-abs-ivec4-ivec4
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-abs-neg-int-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-abs-neg-int-ivec2
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-abs-neg-int-ivec3
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-abs-neg-int-ivec4
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-abs-neg-ivec2-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-abs-neg-ivec2-ivec2
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-abs-neg-ivec3-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-abs-neg-ivec3-ivec3
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-abs-neg-ivec4-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-abs-neg-ivec4-ivec4
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-abs-not-int-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-abs-not-int-ivec2
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-abs-not-int-ivec3
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-abs-not-int-ivec4
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-abs-not-ivec2-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-abs-not-ivec2-ivec2
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-abs-not-ivec3-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-abs-not-ivec3-ivec3
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-abs-not-ivec4-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-abs-not-ivec4-ivec4
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-not-abs-int-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-not-abs-int-ivec2
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-not-abs-int-ivec3
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-not-abs-int-ivec4
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-not-abs-ivec2-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-not-abs-ivec2-ivec2
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-not-abs-ivec3-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-not-abs-ivec3-ivec3
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-not-abs-ivec4-int
spec_glsl-1.50_execution_built-in-functions_gs-op-bitxor-not-abs-ivec4-ivec4

run bin/shader_runner generated_tests/spec/glsl-1.50/execution/built-in-functions/gs-op-bitand-abs-neg-int-int.shader_test -auto
output:
Probe color at (1,0)
  Expected: 0.000000 1.000000 0.000000 1.000000
  Observed: 1.000000 0.000000 0.000000 1.000000
Probe color at (6,0)
  Expected: 0.000000 1.000000 0.000000 1.000000
  Observed: 1.000000 0.000000 0.000000 1.000000
Probe color at (8,0)
  Expected: 0.000000 1.000000 0.000000 1.000000
  Observed: 1.000000 0.000000 0.000000 1.000000
Probe color at (11,0)
  Expected: 0.000000 1.000000 0.000000 1.000000
  Observed: 1.000000 0.000000 0.000000 1.000000
Probe color at (13,0)
  Expected: 0.000000 1.000000 0.000000 1.000000
  Observed: 1.000000 0.000000 0.000000 1.000000
Probe color at (16,0)
  Expected: 0.000000 1.000000 0.000000 1.000000
  Observed: 1.000000 0.000000 0.000000 1.000000
Probe color at (18,0)
  Expected: 0.000000 1.000000 0.000000 1.000000
  Observed: 1.000000 0.000000 0.000000 1.000000
PIGLIT: {"result": "fail" }

Reproduce steps:
-------------------------
1. xinit
2. bin/shader_runner generated_tests/spec/glsl-1.50/execution/built-in-functions/gs-op-bitand-abs-neg-int-int.shader_test -auto
Comment 1 Ian Romanick 2014-07-11 19:04:39 UTC
In BDW the meaning of the neg / not modifier changed in some cases.  I believe Abdiel was working in this area.
Comment 2 Ian Romanick 2014-07-11 19:05:25 UTC
*** Bug 81156 has been marked as a duplicate of this bug. ***
Comment 3 Matt Turner 2014-07-11 19:27:24 UTC
(In reply to comment #1)
> In BDW the meaning of the neg / not modifier changed in some cases.  I
> believe Abdiel was working in this area.

Since it looks like it's just the geometry shader tests that are failing, I suspect it might be something else.
Comment 4 Kenneth Graunke 2014-07-13 11:11:42 UTC
(In reply to comment #3)
> (In reply to comment #1)
> > In BDW the meaning of the neg / not modifier changed in some cases.  I
> > believe Abdiel was working in this area.
> 
> Since it looks like it's just the geometry shader tests that are failing, I
> suspect it might be something else.

According to the other bug (81156) which got marked as a duplicate of this, the VS and FS ones are failing too.  So...they're all failing.  (I haven't verified this myself - just reading the reports...)
Comment 5 Matt Turner 2014-07-15 17:14:52 UTC
I don't know what the absolute value source modifier does on logic instructions, but it doesn't seem to give the absolute value of a negative argument. It doesn't appear to touch positive arguments though.

Not sure how I can investigate further, without being able to create an aub file.

I suspect we should just disable copy propagation of (abs) arguments into logical instructions on Broadwell.
Comment 6 Kenneth Graunke 2014-07-16 06:02:36 UTC
Fixed in master by:

commit a2de6562783ea87ca5fbcb67dbd36c2f345f2054
Author: Kenneth Graunke <kenneth@whitecape.org>
Date:   Tue Jul 15 21:27:08 2014 -0700

    i965: Don't copy propagate abs into Broadwell logic instructions.
    
    It's not clear what abs on logical instructions means on Broadwell, and
    it doesn't appear to do anything sensible.
    
    Fixes 270 Piglit tests (the bitand/bitor/bitxor tests with abs).
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=81157
    Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
    Reviewed-by: Matt Turner <mattst88@gmail.com>
    Cc: "10.2" <mesa-stable@lists.freedesktop.org>
Comment 7 lu hua 2014-07-17 05:22:37 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.