Kenneth Graunke [Wed, 17 Nov 2010 21:59:17 +0000 (13:59 -0800)]
glsl: Remove the ir_binop_cross opcode.
Kenneth Graunke [Wed, 17 Nov 2010 21:37:16 +0000 (13:37 -0800)]
Refresh autogenerated file builtin_function.cpp.
Kenneth Graunke [Wed, 17 Nov 2010 21:20:30 +0000 (13:20 -0800)]
glsl: Reimplement the "cross" built-in without ir_binop_cross.
We are not aware of any GPU that actually implements the cross product
as a single instruction. Hence, there's no need for it to be an opcode.
Future commits will remove it entirely.
Kenneth Graunke [Wed, 17 Nov 2010 20:53:07 +0000 (12:53 -0800)]
Regenerate glcpp parser.
Kenneth Graunke [Wed, 17 Nov 2010 20:50:35 +0000 (12:50 -0800)]
glsl: Unconditionally define GL_FRAGMENT_PRECISION_HIGH in ES2 shaders.
This is really supposed to be defined only if the driver supports highp
in the fragment shader - but all of our current ES2 implementations do.
So, just define it. In the future, we'll need to add a flag to
gl_context and only define the macro if the flag is set.
"Fixes" freedesktop.org bug #31673.
Robert Hooker [Tue, 16 Nov 2010 20:10:20 +0000 (15:10 -0500)]
egl_dri2: Add missing intel chip ids.
Signed-off-by: Robert Hooker <robert.hooker@canonical.com>
Chad Versace [Wed, 17 Nov 2010 18:43:10 +0000 (10:43 -0800)]
glsl: Fix Doxygen tag \file in recently renamed files
Chad Versace [Wed, 17 Nov 2010 18:28:01 +0000 (10:28 -0800)]
glsl: Fix erroneous cast in ast_jump_statement::hir()
Return values were erroneously cast from (ir_rvalue*) to (ir_expression*).
NOTE: This is a candidate for the 7.9 branch.
Kenneth Graunke [Wed, 17 Nov 2010 18:40:28 +0000 (10:40 -0800)]
glsl: Fix constant expression handling for <, >, <=, >= on vectors.
ir_binop_less, ir_binop_greater, ir_binop_lequal, and ir_binop_gequal
are defined to work on vectors as well as scalars, as long as the two
operands have the same type.
This is evident from both ir_validate.cpp and our use of these opcodes
in the GLSL lessThan, greaterThan, lessThanEqual, greaterThanEqual
built-in functions.
Found by code inspection. Not known to fix any bugs. Presumably, our
tests for the built-in comparison functions must pass because C.E.
handling is done on the ir_call of "greaterThan" rather than the inlined
opcode. The C.E. handling of the built-in function calls is correct.
NOTE: This is a candidate for the 7.9 branch.
Marek Olšák [Wed, 17 Nov 2010 16:42:34 +0000 (17:42 +0100)]
r300g: print FS inputs uninitialized due to hardware limits to stderr
Alex Deucher [Wed, 17 Nov 2010 16:30:52 +0000 (11:30 -0500)]
r600c/evergreen: texture align is group_bytes just like 6xx/7xx
Default group bytes to 512 on evergreen. Don't query
tiling config yet for evergreen, the current info returned is not
adequate for evergreen (no way to get bank info).
Brian Paul [Tue, 16 Nov 2010 22:47:11 +0000 (15:47 -0700)]
mesa: minor clean-ups in context code
Brian Paul [Tue, 16 Nov 2010 22:32:52 +0000 (15:32 -0700)]
mesa: reorder texture_error_check() params
To better match other functions.
Brian Paul [Tue, 16 Nov 2010 22:30:18 +0000 (15:30 -0700)]
mesa: 80-column wrapping
Brian Paul [Tue, 16 Nov 2010 22:23:51 +0000 (15:23 -0700)]
mesa: whitespace cleanups
Brian Paul [Tue, 16 Nov 2010 22:15:58 +0000 (15:15 -0700)]
mesa: fix error messages and minor reindenting
Kenneth Graunke [Wed, 17 Nov 2010 00:21:54 +0000 (16:21 -0800)]
Refresh autogenerated glcpp parser.
Kenneth Graunke [Wed, 17 Nov 2010 00:21:20 +0000 (16:21 -0800)]
glcpp: Define GL_FRAGMENT_PRECISION_HIGH if GLSL version >= 1.30.
Per section 4.5.4 of the GLSL 1.30 specification.
Henri Verbeet [Tue, 16 Nov 2010 23:29:03 +0000 (00:29 +0100)]
r600g: Synchronize supported color formats between Evergreen and r600/r700.
Henri Verbeet [Tue, 16 Nov 2010 23:29:02 +0000 (00:29 +0100)]
r600g: Swizzle vertex data only once.
Vertex data swizzles are already done in the vertex shader. Doing them twice
breaks BGRA vertex arrays for example.
Marek Olšák [Tue, 16 Nov 2010 21:19:47 +0000 (22:19 +0100)]
r300g: remove the hack with OPCODE_RET
RET was interpreted as END, which was wrong. Instead, if a shader contains RET
in the main function, it will fail to compile with an error message
from now on.
The hack is from early days.
Ian Romanick [Mon, 15 Nov 2010 21:41:06 +0000 (13:41 -0800)]
glsl: Simplify generation of swizzle for vector constructors
Ian Romanick [Fri, 12 Nov 2010 18:19:08 +0000 (10:19 -0800)]
glsl: Refactor is_vec_{zero,one} to be methods of ir_constant
These predicates will be used in other places soon.
José Fonseca [Tue, 16 Nov 2010 18:56:39 +0000 (18:56 +0000)]
libgl-gdi: Allow to pick softpipe/llvmpipe on runtime.
Vinson Lee [Tue, 16 Nov 2010 06:00:32 +0000 (22:00 -0800)]
mesa: Add definitions for inverse hyperbolic function on MSVC.
Vinson Lee [Tue, 16 Nov 2010 04:54:12 +0000 (20:54 -0800)]
glsl: Add ir_constant_expression.cpp to SConscript.
This was accidentally removed in commit
32aaf89823de11e98cb59d5ec78c66cd3e74bcd4.
Fixes SCons builds.
Brian Paul [Tue, 16 Nov 2010 01:59:39 +0000 (18:59 -0700)]
glsl: remove opt_constant_expression.cpp from SConscript
And alphabetize the opt_* files.
Brian Paul [Tue, 16 Nov 2010 01:50:58 +0000 (18:50 -0700)]
mesa: add more work-arounds for acoshf(), asinhf(), atahf()
Brian Paul [Tue, 16 Nov 2010 01:48:43 +0000 (18:48 -0700)]
glsl: fix assorted MSVC warnings
Brian Paul [Tue, 16 Nov 2010 01:36:50 +0000 (18:36 -0700)]
st/mesa: fix glDrawPixels(depth/stencil) bugs
When drawing GL_DEPTH_COMPONENT the usual fragment pipeline steps apply
so don't override the depth state.
When drawing GL_STENCIL_INDEX (or GL_DEPTH_STENCIL) the fragment pipeline
does not apply (only the stencil and Z writemasks apply) so disable writes
to the color buffers.
Fixes some regressions from commit
ef8bb7ada98f1ddc8e2554a7336af5d669cb1290
Kenneth Graunke [Mon, 15 Nov 2010 22:35:46 +0000 (14:35 -0800)]
glsl: Rename various ir_* files to lower_* and opt_*.
This helps distinguish between lowering passes, optimization passes, and
other compiler code.
Kenneth Graunke [Mon, 15 Nov 2010 22:45:40 +0000 (14:45 -0800)]
glsl: Remove unused and out of date Makefile.am.
This was from when glsl2 lived in a separate repository and used
automake.
Kenneth Graunke [Mon, 15 Nov 2010 22:08:58 +0000 (14:08 -0800)]
glsl: Add constant expression handling for asinh, acosh, and atanh.
Kenneth Graunke [Mon, 15 Nov 2010 22:02:13 +0000 (14:02 -0800)]
glsl: Refresh autogenerated file builtin_function.cpp.
Kenneth Graunke [Mon, 15 Nov 2010 21:58:51 +0000 (13:58 -0800)]
glsl: Implement the asinh, acosh, and atanh built-in functions.
Kenneth Graunke [Mon, 15 Nov 2010 22:00:03 +0000 (14:00 -0800)]
generate_builtins.py: Fix inconsistent use of tabs and spaces warning.
Kenneth Graunke [Sun, 14 Nov 2010 06:02:32 +0000 (22:02 -0800)]
glsl: Refresh autogenerated lexer and parser files.
For the last three commits.
Kenneth Graunke [Sun, 14 Nov 2010 07:09:43 +0000 (23:09 -0800)]
glsl: Add support for the 'u' and 'U' unsigned integer suffixes.
Kenneth Graunke [Sun, 14 Nov 2010 06:02:09 +0000 (22:02 -0800)]
glsl: Add new keywords and reserved words for GLSL 1.30.
Kenneth Graunke [Sun, 14 Nov 2010 04:32:59 +0000 (20:32 -0800)]
glsl: Rework reserved word/keyword handling in the lexer.
This consolidates the TOKEN_OR_IDENTIFIER and RESERVED_WORD macros into
a single KEYWORD macro.
The old TOKEN_OR_IDENTIFIER macros handled the case of a word going from
an identifier to a keyword; the RESERVED_WORD macro handled a word going
from a reserved word to a language keyword. However, neither could
properly handle samplerBuffer (for example), which is an identifier in
1.10 and 1.20, a reserved word in 1.30, and a keyword in 1.40 and on.
Furthermore, the existing macros didn't properly handle reserved words
in GLSL ES 1.00. The best they could do was return a token (rather than
an identifier), resulting in an obtuse parser error, rather than a
user-friendly "you used a reserved word" error message.
Kenneth Graunke [Thu, 11 Nov 2010 07:20:47 +0000 (23:20 -0800)]
glsl: Convert glsl_type::base_type from #define'd constants to an enum.
This is nice because printing type->base_type in GDB will now give you a
readable name instead of a number.
Kenneth Graunke [Thu, 11 Nov 2010 07:14:45 +0000 (23:14 -0800)]
glsl: Remove GLSL_TYPE_FUNCTION define.
Functions are not first class objects in GLSL, so there is never a value
of function type. No code actually used this except for one function
which asserted it shouldn't occur. One comment mentioned it, but was
incorrect. So we may as well remove it entirely.
Henri Verbeet [Mon, 15 Nov 2010 21:18:12 +0000 (22:18 +0100)]
r600g: Add PIPE_FORMAT_L8A8_UNORM for Evergreen as well.
Henri Verbeet [Mon, 15 Nov 2010 21:18:12 +0000 (22:18 +0100)]
r600: Evergreen has two extra frac_bits for the sampler LOD state.
Note: this is a candidate for the 7.9 branch.
Henri Verbeet [Mon, 15 Nov 2010 21:18:12 +0000 (22:18 +0100)]
r600g: Evergreen has two extra frac_bits for the sampler LOD state.
The (piglit) mipmap_limits test shows the issue very clearly.
Henri Verbeet [Mon, 15 Nov 2010 21:18:12 +0000 (22:18 +0100)]
r600g: Cleanup the fenced_bo list in r600_context_fini().
Jerome Glisse [Mon, 15 Nov 2010 19:53:21 +0000 (14:53 -0500)]
gallium/noop: no operation gallium driver
This driver is a fake swdri driver that perform no operations
beside allocation gallium structure and buffer for upper layer
usage.
It's purpose is to help profiling core mesa/gallium without
having pipe driver overhead hidding hot spot of core code.
scons file are likely inadequate i am unfamiliar with this
build system.
To use it simply rename is to swrast_dri.so and properly set
LIBGL_DRIVERS_PATH env variable.
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Francisco Jerez [Mon, 15 Nov 2010 15:48:29 +0000 (16:48 +0100)]
dri/nouveau: Kill a bunch of ternary operators.
Francisco Jerez [Mon, 15 Nov 2010 15:44:31 +0000 (16:44 +0100)]
dri/nouveau: Fix typo.
Viktor Novotný [Mon, 1 Nov 2010 00:30:50 +0000 (01:30 +0100)]
dri/nouveau: Remove nouveau_class.h, finishing switch to rules-ng-ng headers
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Viktor Novotný [Mon, 1 Nov 2010 00:22:44 +0000 (01:22 +0100)]
dri/nouveau nv20: Use rules-ng-ng headers
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Viktor Novotný [Mon, 1 Nov 2010 00:26:05 +0000 (01:26 +0100)]
dri/nouveau: nv10: Use rules-ng-ng headers
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Viktor Novotný [Mon, 1 Nov 2010 00:26:04 +0000 (01:26 +0100)]
dri/nouveau: nv04: Use rules-ng-ng headers
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Viktor Novotný [Mon, 1 Nov 2010 00:26:03 +0000 (01:26 +0100)]
dri/nouveau: Import headers from rules-ng-ng
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Brian Paul [Mon, 15 Nov 2010 16:25:32 +0000 (09:25 -0700)]
evergreen: set gl_texture_image::TexFormat field in evergreenSetTexBuffer()
See https://bugs.freedesktop.org/show_bug.cgi?id=31544
Note: this is a candidate for the 7.9 branch.
Brian Paul [Mon, 15 Nov 2010 16:24:42 +0000 (09:24 -0700)]
r300: set gl_texture_image::TexFormat field in r300SetTexBuffer2()
See https://bugs.freedesktop.org/show_bug.cgi?id=31544
Note: this is a candidate for the 7.9 branch
Brian Paul [Mon, 15 Nov 2010 16:23:59 +0000 (09:23 -0700)]
r200: set gl_texture_image::TexFormat field in r200SetTexBuffer2()
See https://bugs.freedesktop.org/show_bug.cgi?id=31544
Note: this is a candidate for the 7.9 branch.
Brian Paul [Mon, 15 Nov 2010 16:16:31 +0000 (09:16 -0700)]
r600: set gl_texture_image::TexFormat field in r600SetTexBuffer2()
See https://bugs.freedesktop.org/show_bug.cgi?id=31544
Note: this is a candidate for the 7.9 branch.
Brian Paul [Mon, 15 Nov 2010 16:15:33 +0000 (09:15 -0700)]
radeon: set gl_texture_image::TexFormat field in radeonSetTexBuffer2()
See https://bugs.freedesktop.org/show_bug.cgi?id=31544
Note: this is a candidate for the 7.9 branch
Julien Cristau [Sat, 13 Nov 2010 14:05:45 +0000 (06:05 -0800)]
Makefile: don't include the same files twice in the tarball
src/mesa/drivers/dri/*/*/*.[chS] is a superset of
src/mesa/drivers/dri/*/server/*.[ch] and
src/mesa/drivers/dri/common/xmlpool/*.[ch].
include/GL/internal/glcore.h is already in MAIN_FILES, no need for it in
DRI_FILES too. src/glx/Makefile was listed twice.
Signed-off-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Brian Paul <brianp@vmware.com>
Daniel Lichtenberger [Mon, 15 Nov 2010 06:32:42 +0000 (01:32 -0500)]
radeon: fix potential segfault in renderbuffer update
Fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=31617
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Marek Olšák [Sun, 14 Nov 2010 21:32:46 +0000 (22:32 +0100)]
r300g: return shader caps from Draw for SWTCL vertex shaders
Marek Olšák [Sun, 14 Nov 2010 16:34:42 +0000 (17:34 +0100)]
r300g: clean up redundancy in draw functions
Eric Anholt [Sat, 13 Nov 2010 22:00:58 +0000 (14:00 -0800)]
i965: Fix gl_FragCoord inversion when drawing to an FBO.
This showed up as cairo-gl gradients being inverted on everyone but
Intel, where I'd apparently tweaked the transformation to work around
the bug. Fixes piglit fbo-fragcoord.
Vinson Lee [Sun, 14 Nov 2010 05:19:59 +0000 (21:19 -0800)]
i965: Silence uninitialized variable warning.
Silences this GCC warning.
brw_fs.cpp: In member function 'void fs_visitor::split_virtual_grfs()':
brw_fs.cpp:2516: warning: unused variable 'reg'
Marek Olšák [Sat, 13 Nov 2010 15:43:20 +0000 (16:43 +0100)]
r300g: fix texture border color for all texture formats
This fixes 8 texwrap format tests.
The code should handle arbitrary formats now and is cleaner.
NOTE: This is a candidate for the 7.9 branch.
Vinson Lee [Sat, 13 Nov 2010 09:16:12 +0000 (01:16 -0800)]
mesa: Clean up header file inclusion in points.h.
Brian Paul [Fri, 12 Nov 2010 01:04:00 +0000 (18:04 -0700)]
mesa: consolidate assertions in teximage code
Marek Olšák [Fri, 12 Nov 2010 02:08:47 +0000 (03:08 +0100)]
svga: fill out CAPs for indirect addressing
As per the ps_3_0 and vs_3_0 documentation.
The aL register in D3D9 is quite tricky to use, though.
Marek Olšák [Fri, 12 Nov 2010 02:07:05 +0000 (03:07 +0100)]
r600g: fill out CAPs for indirect addressing
Marek Olšák [Fri, 12 Nov 2010 02:05:37 +0000 (03:05 +0100)]
r300g: fill out CAPs for indirect addressing
To match shader model 2.0 (it's impossible to fully implement ARL
with shader model 3.0 relative addressing).
Marek Olšák [Fri, 12 Nov 2010 02:04:48 +0000 (03:04 +0100)]
nvfx: fill out CAPs for indirect addressing
To match shader model 2.0.
Marek Olšák [Fri, 12 Nov 2010 02:04:29 +0000 (03:04 +0100)]
nv50: fill out CAPs for indirect addressing
Marek Olšák [Fri, 12 Nov 2010 02:03:59 +0000 (03:03 +0100)]
i965g: fill out CAPs for indirect addressing
Marek Olšák [Fri, 12 Nov 2010 02:03:43 +0000 (03:03 +0100)]
i915g: fill out CAPs for indirect addressing
Marek Olšák [Fri, 12 Nov 2010 02:03:04 +0000 (03:03 +0100)]
tgsi: fill out CAPs for indirect addressing
Marek Olšák [Wed, 10 Nov 2010 19:41:55 +0000 (20:41 +0100)]
gallium: add CAPs for indirect addressing and lower it in st/mesa when needed
Required because ATI and NVIDIA DX9 GPUs do not support indirect addressing
of temps, inputs, outputs, and consts (FS-only) or the hw support is so
limited that we cannot use it.
This should make r300g and possibly nvfx more feature complete.
Signed-off-by: Marek Olšák <maraeo@gmail.com>
Brian Paul [Thu, 11 Nov 2010 23:56:16 +0000 (16:56 -0700)]
tdfx: s/Format/_BaseFormat/
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=31560
Eric Anholt [Mon, 8 Nov 2010 22:38:18 +0000 (14:38 -0800)]
glsl: Free the loop state context when we free the loop state.
Since this was talloced off of NULL instead of the compile state, it
was a real leak over the course of the program. Noticed with
valgrind --leak-check=full --show-reachable=yes. We should really
change these passes to generally get the compile context as an argument
so simple mistakes like this stop mattering.
Brian Paul [Thu, 11 Nov 2010 22:31:28 +0000 (15:31 -0700)]
mesa: fix glDeleteBuffers() regression
This fixes a regression (failed assertion) from commit
c552f273f559968dfd770367e25329baccbcd0c4 which was hit if glDeleteBuffers()
was called on a buffer that was never bound.
NOTE: this is a candidate for the 7.9 branch.
Brian Paul [Thu, 11 Nov 2010 21:47:30 +0000 (14:47 -0700)]
mesa: make glIsBuffer() return false for never bound buffers
Use a dummy buffer object as we do for frame/renderbuffer objects.
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=31514
Note: this is a candidate for the 7.9 branch.
Aras Pranckevicius [Thu, 30 Sep 2010 09:47:31 +0000 (12:47 +0300)]
glsl: fix crash in loop analysis when some controls can't be determined
Fixes loop-07.frag.
Keith Whitwell [Thu, 11 Nov 2010 16:20:24 +0000 (16:20 +0000)]
r600g: enforce minimum stride on render target texture images
Fixes piglit/fbo_readpixels since staging upload changes.
Keith Whitwell [Thu, 11 Nov 2010 15:41:49 +0000 (15:41 +0000)]
r600g: do not try to use staging resource for depth textures
Currently r600_resource_copy_region() will turn these copies into
transfers + memcpys, so to avoid recursion we must not turn those
transfers back into blits.
Brian Paul [Thu, 11 Nov 2010 15:33:40 +0000 (08:33 -0700)]
mesa: handle more pixel types in mipmap generation code
NOTE: This is a candidate for the 7.9 branch.
Brian Paul [Thu, 11 Nov 2010 15:31:20 +0000 (08:31 -0700)]
mesa: add missing formats in _mesa_format_to_type_and_comps()
NOTE: this is a candidate for the 7.9 branch
Brian Paul [Thu, 11 Nov 2010 14:43:30 +0000 (07:43 -0700)]
mesa: improve error message
Brian Paul [Thu, 11 Nov 2010 01:51:05 +0000 (18:51 -0700)]
mesa: #include mfeatures.h in enums.h
Keith Whitwell [Thu, 11 Nov 2010 14:26:52 +0000 (14:26 +0000)]
r600g: guard experimental s3tc code with R600_ENABLE_S3TC
Lucas Stach [Wed, 10 Nov 2010 22:10:25 +0000 (23:10 +0100)]
nvfx: fill PIPE_CAP_PRIMITIVE_RESTART and PIPE_CAP_SHADER_STENCIL_EXPORT
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Francisco Jerez [Wed, 10 Nov 2010 19:18:33 +0000 (20:18 +0100)]
dri/nouveau: Split hardware/software TNL instantiation more cleanly.
Vinson Lee [Thu, 11 Nov 2010 01:30:59 +0000 (17:30 -0800)]
mesa: Fix printf format warnings.
Ian Romanick [Wed, 10 Nov 2010 00:35:54 +0000 (16:35 -0800)]
mesa: Allow query of MAX_SAMPLES with EXT_framebuffer_multisample
Previously queries of MAX_SAMPLES were only allowed with
ARB_framebuffer_object, but EXT_framebuffer_multisample also enables
this query. This seems to only effect the i915. All other drivers
support both extensions or neither extension.
This patch is based on a patch that Kenneth sent along with the report.
NOTE: this is a candidate for the 7.9 branch.
Reported-by: Kenneth Waters <kwaters@chromium.org>
Jakob Bornecrantz [Wed, 10 Nov 2010 23:40:18 +0000 (23:40 +0000)]
libgl-xlib: Use sw helper instead of roll your own
Jakob Bornecrantz [Wed, 10 Nov 2010 20:29:57 +0000 (20:29 +0000)]
graw: Use inline sw helper instead of roll your own loader
Jakob Bornecrantz [Wed, 10 Nov 2010 22:36:33 +0000 (22:36 +0000)]
galahad: Correct the name of the scons library
Jerome Glisse [Wed, 10 Nov 2010 21:46:44 +0000 (16:46 -0500)]
r600g: allow driver to work without submitting cmd to GPU
For driver performance analysis it usefull to be able to
disable as much as possible the GPU interaction so that
one can profile the userspace only.
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Robert Hooker [Wed, 20 Oct 2010 22:01:10 +0000 (18:01 -0400)]
intel: Add a new B43 pci id.
Signed-off-by: Robert Hooker <robert.hooker@canonical.com>
Eric Anholt [Mon, 11 Oct 2010 23:02:08 +0000 (16:02 -0700)]
i965: re-enable gen6 IF statements in the fragment shader.
IF statements were getting flattened while they were broken. With
Zhenyu's last fix for ENDIF's type, everything appears to have lined
up to actually work.
This regresses two tests:
glsl1-! (not) operator (1, fail)
glsl1-! (not) operator (1, pass)
but fixes tests that couldn't work before because the IFs couldn't be
flattened:
glsl-fs-discard-01
occlusion-query-discard
(and, naturally, this should be a performance improvement for apps
that actually use IF statements to avoid executing a bunch of code).
Eric Anholt [Wed, 10 Nov 2010 20:30:09 +0000 (12:30 -0800)]
i965: Work around strangeness in swizzling/masking of gen6 math.
Sometimes we swizzled in a different channel it looked like, and
sometimes we swizzled in zero. Or something.
Having looked at the output of another code generator for this chip,
this is approximately what they do, too: use align1 math on
temporaries, and then move the results into place.
Fixes:
glean/vp1-EX2 test
glean/vp1-EXP test
glean/vp1-LG2 test
glean/vp1-RCP test (reciprocal)
glean/vp1-RSQ test 1 (reciprocal square root)
shaders/glsl-cos
shaders/glsl-sin
shaders/glsl-vs-masked-cos
shaders/vpfp-generic/vp-exp-alias