summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* i915: Add support for reading output regs in the FS.Eric Anholt2010-08-171-0/+14
| | | | | Fixes glsl-unused-varying and many others, since we produce an output reg read any time gl_FragColor is written inside an if statement.
* i915: Add support for OPCODE_DP2.Eric Anholt2010-08-171-0/+12
| | | | Fixes glsl-fs-dot-vec2.
* i915: Enable ARB_fragment_shader by default.Eric Anholt2010-08-171-1/+1
| | | | | | | | | | | | | | | | Now that we have glsl2 with if flattening in place, most shaders will just work. Remaining failing shaders will mostly be due to loop unrolling (in progress), some possible if flattening failures in inlining functions (planning on fixing), and the register/instruction count limits. While the GLSL and GLSL-ES specs say that shaders shouldn't fail to compile/link due to register/instruction limits, in practice we're not the first vendor to expose GLSL on hardware with these limitations. The benefit to application developers of providing a better language for GPU programming is greater than the pain of having to handle instruction limits (which they had to for ARB_fp on this hardware anyway)
* glsl2: Fix transpose of rows and colsIan Romanick2010-08-171-2/+2
| | | | | | | | | This error led to an assertion failure for some constructors of non-square matrices. It only occured in matrices where the number of columns was greater than the number of rows. It didn't even always occur on those. Fixes piglit glslparsertest case constructor-16.vert.
* r600c: Handle reads from PROGRAM_OUTPUTHenri Verbeet2010-08-172-7/+20
| | | | with glsl2, reads from outputs are legal
* linker: Demote user-defined varyings in the VS-only caseIan Romanick2010-08-171-14/+28
| | | | Fixes piglit test case glsl-vs-ff-frag and bugzilla #29623.
* prog_optimize: Only merge writes to temporary registersBenjamin Segovia2010-08-171-1/+5
| | | | | | In one optimization pass, register files may have been messed therefore merging instructions which use the same index in two different register files.
* r600g: fix fake pixel outputJerome Glisse2010-08-171-1/+1
| | | | Signed-off-by: Jerome Glisse <[email protected]>
* i965: Add support for DP2 in the VS.Eric Anholt2010-08-171-0/+4
| | | | Fixes glsl-vs-dot-vec2.
* glsl: When doing algebraic simplification, make sure the type still matches.Eric Anholt2010-08-171-12/+34
| | | | | | | | | | | | When simplifying (vec4(1.0) / (float(x))) to rcp(float(x)), we forgot to produce a vec4, angering ir_validate when starting alien-arena. Fixes: glsl-algebraic-add-zero-2 glsl-algebraic-div-one-2 glsl-algebraic-mul-one-2 glsl-algebraic-sub-zero-3 glsl-algebraic-rcp-sqrt-2
* glsl: Make ir_algebraic new expressions allocate out of the parent.Eric Anholt2010-08-171-16/+22
| | | | | This could reduce the amount of memory used by a shader tree after optimization, and increases consistency with other passes.
* ir_constant: Don't assert on out-of-bounds array accessesIan Romanick2010-08-171-1/+15
| | | | | | | | | Several optimization paths, including constant folding, can lead to accessing an ir_constant array with an out of bounds index. The GLSL spec lets us produce "undefined" results, but it does not let us crash. Fixes piglit test case glsl-array-bounds-01 and glsl-array-bounds-03.
* mesa: Dump shader source before validating the shader.Eric Anholt2010-08-171-9/+9
| | | | | This will make extracting source to produce minimal testcases for shader compile issues easier.
* r600c: fix dword miscount in blit emit codeAlex Deucher2010-08-171-1/+1
|
* targets/egl: Link with DRI_LIB_DEPS.Chia-I Wu2010-08-171-3/+3
| | | | | Use DRI_LIB_DEPS when linking GL/GLES state trackers. This fixes missing talloc symbol errors, and is hopefully more future proof.
* gallivm: Fix and re-enable MMX-disabling codenobled2010-08-171-5/+1
| | | | Signed-off-by: José Fonseca <[email protected]>
* mesa: fix es1/2 build hopefullyDave Airlie2010-08-171-0/+8
| | | | needed to add cpp rules and includes properly for es1/es2
* r300g: fix context destroy under hyperzDave Airlie2010-08-171-3/+3
| | | | | | we were destroying the mm before unrefing all the objects, so segfault. Signed-off-by: Dave Airlie <[email protected]>
* scons: Add -fno-common for 64-bit builds on Mac OS X.Vinson Lee2010-08-171-0/+2
| | | | | This option is also needed for 64-bit builds if llvm is enabled. Other the build fails during linking.
* r600g: kill event type magic number in winsysDave Airlie2010-08-172-3/+5
| | | | these events have names, use them.
* configs: Add -ltalloc to linux-dri.Vinson Lee2010-08-161-1/+1
| | | | Fixes build after glsl2 branch merge, which added talloc dependency.
* r600g: add user clip plane support.Dave Airlie2010-08-175-13/+89
| | | | | | | | | Apart from the fact that the radeon.h/r600_states.h editing is a nightmare, this wasn't so bad. passes piglit user-clip test now also trivial tests. Signed-off-by: Dave Airlie <[email protected]>
* i965: Use the implied move available in most brw_wm_emit brw_math() calls.Eric Anholt2010-08-161-16/+4
| | | | | | | | This saves an extra message reg move in the program, though I'm not clear on whether it will have any performance impact other than cache footprint. It will also fix those math calls on Sandybridge, where the brw_eu_emit.c brw_math() support relies on the implied move being used.
* i965: Add disasm for Compr4 instruction compression.Eric Anholt2010-08-161-1/+16
|
* Merge branch 'glsl2'Ian Romanick2010-08-16474-306/+85895
|\ | | | | | | | | Conflicts: src/mesa/program/prog_optimize.c
| * glsl2: Refresh autogenerated file builtin_function.cpp.Kenneth Graunke2010-08-161-1952/+11534
| |
| * glsl2: Add builtins profile for GLSL 1.30.Kenneth Graunke2010-08-162-0/+1986
| | | | | | | | | | Many functions are currently wrapped with #if 0 since we haven't implemented them yet.
| * linker: Include compiler.h to avoid spurious warnings about INLINEIan Romanick2010-08-161-0/+1
| |
| * glsl2: Silence unused variable warningIan Romanick2010-08-161-0/+1
| |
| * glcpp: Refresh autogenerated lexer and parser.Kenneth Graunke2010-08-162-60/+44
| |
| * glcpp: Remove spurious newline generated by #version handling.Kenneth Graunke2010-08-162-4/+2
| | | | | | | | | | | | This was causing line numbering to be off by one. The newline comes from the NEWLINE token at the end of the line; there's no need to insert one.
| * ir_to_mesa: Silence unused variable warningsIan Romanick2010-08-161-3/+3
| |
| * ir_to_mesa: Clean up assertions in ir_to_mesa_visitor::visit(ir_texture *)Ian Romanick2010-08-161-1/+4
| |
| * ir_to_mesa: Support texture rectangle targetsIan Romanick2010-08-161-0/+3
| |
| * st/mesa: remove output register reads inside shadersMarek Olšák2010-08-161-0/+8
| | | | | | | | This is a GLSL2 regression fix.
| * mesa: Check that _XOPEN_SOURCE is defined before using it.Vinson Lee2010-08-151-1/+1
| |
| * Revert "glsl2: Use stdint.h instead of inttypes.h"José Fonseca2010-08-144-4/+4
| | | | | | | | This reverts commit a77a6bc008b3146c56431fa520a00e1f8dfa3938.
| * Replace our custom C99 headers with http://code.google.com/p/msinttypes/José Fonseca2010-08-142-106/+538
| | | | | | | | | | | | Perhaps http://www.azillionmonkeys.com/qed/pstdint.h would be a better (more portable) choice, but only MSVC uses this anyway, and we can always change later.
| * glsl: Standardize a few more uses of struct vs class keyword.José Fonseca2010-08-145-12/+13
| |
| * scons: Link talloc.José Fonseca2010-08-141-0/+1
| |
| * glsl: Silence gcc warning "control reaches end of non-void function".José Fonseca2010-08-141-1/+1
| |
| * mesa: Silence gcc warning "control reaches end of non-void function".José Fonseca2010-08-141-0/+1
| |
| * mesa: Silence gcc warning "missing initializer for member".José Fonseca2010-08-141-28/+28
| |
| * mesa: Recent versions of MSVC define the single precision functions already.José Fonseca2010-08-141-1/+2
| |
| * scons: Add new source files.José Fonseca2010-08-141-0/+2
| |
| * mesa: atan2f and powf need two args.José Fonseca2010-08-141-2/+2
| |
| * Merge branch 'master' into glsl2Ian Romanick2010-08-13431-7548/+10327
| |\
| * | mesa: Work-arounds for platforms that lack C99 math functionsIan Romanick2010-08-131-0/+28
| | |
| * | glsl2/Makefile: Add a 'make builtins' target.Kenneth Graunke2010-08-131-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | This copies over a dummy builtin_functions.cpp and rebuilds a bootstrapped version of the compiler, then uses that to generate the proper list of builtins. Finally, it rebuilds the compiler with the new list. Unfortunately, it's no longer automatic, but at least it works.
| * | glsl2: Rework builtin function generation.Kenneth Graunke2010-08-13102-5685/+15738
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Each language version/extension and target now has a "profile" containing all of the available builtin function prototypes. These are written in GLSL, and come directly out of the GLSL spec (except for expanding genType). A new builtins/ir/ folder contains the hand-written IR for each builtin, regardless of what version includes it. Only those definitions that have prototypes in the profile will be included. The autogenerated IR for texture builtins is no longer written to disk, so there's no longer any confusion as to what's hand-written or generated. All scripts are now in python instead of perl.