Go to file
Nicolai Haehnle c00e03b8f5 AMDGPU: Add amdgpu-ps-wqm-outputs function attributes
Summary:
The presence of this attribute indicates that VGPR outputs should be computed
in whole quad mode. This will be used by Mesa for prolog pixel shaders, so
that derivatives can be taken of shader inputs computed by the prolog, fixing
a bug.

The generated code could certainly be improved: if a prolog pixel shader is
used (which isn't common in modern OpenGL - they're used for gl_Color, polygon
stipples, and forcing per-sample interpolation), Mesa will use this attribute
unconditionally, because it has to be conservative. So WQM may be used in the
prolog when it isn't really needed, and furthermore a silly back-and-forth
switch is likely to happen at the boundary between prolog and main shader
parts.

Fixing this is a bit involved: we'd first have to add a mechanism by which
LLVM writes the WQM-related input requirements to the main shader part binary,
and then Mesa specializes the prolog part accordingly. At that point, we may
as well just compile a monolithic shader...

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=95130

Reviewers: arsenm, tstellarAMD, mareko

Subscribers: arsenm, llvm-commits, kzhuravl

Differential Revision: http://reviews.llvm.org/D20839

llvm-svn: 272063
2016-06-07 21:37:17 +00:00
clang Make isNoThrow and hasDynamicExceptionSpec polymorphic so they can be used with both functionDecl and functionPrototype matchers. 2016-06-07 17:34:45 +00:00
clang-tools-extra [Clang-tidy] Alphabetical checks order in release notes. 2016-06-07 18:38:42 +00:00
compiler-rt [scudo] trying to fix the bot: aligned_alloc is not known there; attempt 2 2016-06-07 20:09:49 +00:00
debuginfo-tests New round of fixes for "Always compile debuginfo-tests for the host triple" 2014-10-18 23:47:59 +00:00
libclc math: Use single precision fmax in sp path 2016-05-17 19:44:01 +00:00
libcxx Added notes for a bunch of the issues 2016-06-07 20:05:57 +00:00
libcxxabi Partially revert r270816: build with -fvisibility=hidden. 2016-06-02 08:14:28 +00:00
libunwind [libunwind] Remove unused code. 2016-06-03 20:57:48 +00:00
lld Remove break after return. 2016-06-07 19:10:51 +00:00
lldb Revert "Make lldbinline.py regenerate the Makefile each time it builds." 2016-06-07 21:29:46 +00:00
llgo [llgo] llgoi: separate evaluation from printing 2016-04-25 01:18:20 +00:00
llvm AMDGPU: Add amdgpu-ps-wqm-outputs function attributes 2016-06-07 21:37:17 +00:00
openmp Fine tuning of TC* macros - small followup 2016-06-01 09:59:26 +00:00
polly [FIX] Model the rounding behaviour of SRem correctly 2016-06-07 12:00:37 +00:00