Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | mesa: more complete fix for transform_invarient glitches | Keith Whitwell | 2009-05-08 | 1 | -2/+117 |
| | | | | | | Add a new flag mvp_with_dp4 in the context, and use that to switch both ffvertex.c and programopt.c vertex transformation code to either DP4 or MUL/MAD implementations. | ||||
* | mesa: added _mesa_check_soa_dependencies() function | Brian Paul | 2009-04-29 | 2 | -0/+53 |
| | | | | | This function will check an instruction to see if there's data dependencies between the dst and src registers if executed in an SOA manner. | ||||
* | Avoid a segfault in shader compilation | Robert Ellison | 2009-04-27 | 1 | -0/+6 |
| | | | | | | | | | | If a shader reaches an out-of-memory condition while adding a new function (reallocating the function list), a segfault will occur during cleanup (because the num_functions field is non-zero, but the functions pointer is NULL). This fixes that segfault by zeroing out the num_functions field if reallocation fails. | ||||
* | mesa: Fix buffer overflow when parsing generic vertex attributes. | Brian Paul | 2009-04-22 | 1 | -3/+9 |
| | |||||
* | mesa: new _NEW_PROGRAM_CONSTANTS flag | Brian Paul | 2009-04-21 | 3 | -9/+7 |
| | | | | | | | | | | | | | | | This state flag will be used to indicate that vertex/fragment program constants have changed. _NEW_PROGRAM will be used to indicate changes to the vertex/fragment shader itself, or misc related state. _NEW_PROGRAM_CONSTANTS is also set whenever a program parameter that's tracking GL state has changed. For example, if the projection matrix is in the parameter list, calling glFrustum() will cause _NEW_PROGRAM_CONSTANTS to be set. This will let to remove the need for dynamic state atoms in some drivers. For now, we still set _NEW_PROGRAM in all the places we used to. We'll no longer set _NEW_PROGRAM in glUniform() after drivers/etc have been updated. | ||||
* | mesa: print internal.current[i] attrib | Brian Paul | 2009-04-21 | 1 | -2/+7 |
| | |||||
* | mesa: print parameter list dirty state flag mask | Brian Paul | 2009-04-21 | 1 | -0/+1 |
| | |||||
* | mesa: add switch case for GL_VERTEX_STATE_PROGRAM_NV in _mesa_new_program() | Brian Paul | 2009-04-18 | 1 | -0/+1 |
| | | | | Fixes bug seen in progs/tests/vptest1.c | ||||
* | mesa: build a float[4] value in _mesa_add_sampler() to avoid random values | Brian Paul | 2009-04-17 | 1 | -3/+4 |
| | |||||
* | mesa: merge the prog_src_register::NegateBase and NegateAbs fields | Brian Paul | 2009-04-14 | 8 | -82/+52 |
| | | | | | | There's really no need for two negation fields. This came from the GL_NV_fragment_program extension. The new, unified Negate bitfield applies after the absolute value step. | ||||
* | mesa: remove unused matrixType param from ctx->Driver.UniformMatrix() functions | Brian Paul | 2009-04-14 | 1 | -1/+1 |
| | |||||
* | mesa: move #define for GL_PROGRAM_BINARY_LENGTH_OES | Brian Paul | 2009-04-14 | 1 | -5/+0 |
| | |||||
* | mesa: remove NV vertex/fragment program print/debug code | Brian Paul | 2009-04-14 | 4 | -407/+4 |
| | | | | The code in prog_print.c can be used instead. | ||||
* | mesa: minor datatype changes in optimization code | Brian Paul | 2009-04-08 | 1 | -6/+7 |
| | |||||
* | glsl: enable the new linear scan register allocator code | Brian Paul | 2009-04-07 | 1 | -3/+3 |
| | | | | | Seems to b working well enough to enable all the time. Optimizations can be disabled with "export MESA_GLSL=nopt" if needed. | ||||
* | glsl: don't optimize program if MESA_GLSL=nopt | Brian Paul | 2009-04-07 | 1 | -1/+2 |
| | |||||
* | mesa: in mesa_add_named_constant(), avoid adding duplicate constants | Brian Paul | 2009-04-03 | 1 | -7/+12 |
| | |||||
* | mesa: fix parameter counting in ARB vertex/fragment program parsing | Brian Paul | 2009-04-03 | 1 | -5/+2 |
| | | | | Duplicated unnamed constants were getting counted more than once. | ||||
* | mesa: replace >= with > when testing if we've exceeded max local params | Brian Paul | 2009-04-03 | 1 | -2/+2 |
| | | | | Now a program that uses 256 locals works as it should. | ||||
* | mesa: for OPCODE_LIT, use _mesa_pow() instead of exp() and log() | Brian Paul | 2009-04-03 | 1 | -2/+2 |
| | | | | Also, s/pow/_mesa_pow/ | ||||
* | mesa: rename some gl_light fields to be clearer | Brian Paul | 2009-04-03 | 1 | -2/+2 |
| | | | | | EyeDirection -> SpotDirection _NormDirection -> _NormSpotDirection | ||||
* | mesa: replace assertion with conditional in _mesa_opcode_string() | Brian Paul | 2009-04-03 | 1 | -2/+4 |
| | |||||
* | mesa: clean up formatting and use 'return' instead of 'break' consistantly | Brian Paul | 2009-04-03 | 1 | -51/+67 |
| | |||||
* | glsl: fix segfault in linker when vertex or fragment shader was missing | Brian Paul | 2009-04-02 | 1 | -9/+14 |
| | |||||
* | glsl: implement compiling/linking of separate compilation units | Brian Paul | 2009-04-01 | 5 | -23/+138 |
| | | | | | | | | | A shader program may consist of multiple shaders (source code units). If we find there are unresolved functions after compiling the unit that defines main(), we'll concatenate all the respective vertex or fragment shaders then recompile. This isn't foolproof but should work in most cases. | ||||
* | mesa: use correct tex unit lod bias for TXB instruction | Brian Paul | 2009-04-01 | 1 | -2/+2 |
| | |||||
* | glsl: fix texgen state variable tokens in emit_statevars() | Brian Paul | 2009-04-01 | 1 | -8/+16 |
| | | | | | This fixes broken variable indexing into the gl_Eye/ObjectPlaneS/T/R/Q arrays. See bug 20986. | ||||
* | mesa: minor tweaks in append_token() for printing state var strings | Brian Paul | 2009-04-01 | 1 | -8/+8 |
| | |||||
* | slang: ensure structure elements have their array length set | Alan Hourihane | 2009-03-25 | 1 | -0/+1 |
| | |||||
* | mesa: add new internal state var for window size | Brian Paul | 2009-03-20 | 2 | -0/+14 |
| | | | | Actually, window width - 1, height - 1 | ||||
* | mesa: linear scan register allocation for shader programs | Brian Paul | 2009-03-20 | 1 | -21/+407 |
| | | | | | | | | | | | | | | This is a check-point commit; not turned on yet. Use the linear scan register allocation algorithm to re-allocate temporary registers. This is done by computing the live intervals for registers and reallocating temps with that information. For some shaders this dramatically reduces the number of temp registers needed. For the time being we give up on a few cases such as relative-indexed temps and subroutine calls (but we inline most GLSL functions anyway). | ||||
* | slang: Use _mesa_snprintf() wrapper. | Michal Krol | 2009-03-20 | 1 | -1/+1 |
| | |||||
* | slang: initialize the context | Alan Hourihane | 2009-03-19 | 1 | -2/+3 |
| | |||||
* | slang: support uniform arrays | Alan Hourihane | 2009-03-19 | 1 | -1/+13 |
| | |||||
* | glsl: change GLSL #pragma initialization | Brian Paul | 2009-03-19 | 3 | -14/+22 |
| | | | | | | Initialize the shader's pragma settings before calling the compiler. Added pragma "Ignore" fields to allow overriding the #pragma directives found in shader source code. | ||||
* | glsl: when debug pragma is on, emit comments about function calls/inlines | Brian Paul | 2009-03-19 | 3 | -0/+13 |
| | | | | BTW, the debug pragma syntax is "#pragma debug(on)" | ||||
* | slang: if/else/break & if/else/continue work for unrolled loops | Alan Hourihane | 2009-03-19 | 2 | -7/+38 |
| | |||||
* | slang: redo the last commit for if/break & if/continue tests as it | Alan Hourihane | 2009-03-18 | 1 | -1/+8 |
| | | | | wasn't good enough for deeply nested if's. | ||||
* | Revert "slang: if we detect an if/break or if/continue within a loop and we're" | Alan Hourihane | 2009-03-18 | 1 | -28/+17 |
| | | | | This reverts commit 752296b8f311c5e3844f3ce89d17ba57224ce5ba. | ||||
* | slang: if we detect an if/break or if/continue within a loop and we're | Alan Hourihane | 2009-03-18 | 1 | -17/+28 |
| | | | | trying to unroll, bail, and fallback to doing the real loop. | ||||
* | mesa: update/fix doxygen comments | Vinson Lee | 2009-03-17 | 2 | -2/+2 |
| | |||||
* | mesa: Silence compiler warnings. | Michal Krol | 2009-03-16 | 1 | -0/+1 |
| | |||||
* | mesa: glUseProgram() debug code (disabled) | Brian Paul | 2009-03-13 | 1 | -0/+11 |
| | |||||
* | mesa: add support for ATI_envmap_bumpmap | Roland Scheidegger | 2009-03-12 | 2 | -0/+30 |
| | | | | | | | | add new entrypoints, new texture format, etc translate in texenvprogram.c for drivers using the mesa-generated tex env fragment program also handled in swrast, but not tested (cannot work due to negative texel results not handled correctly) | ||||
* | mesa: remove some last remnants of GL_MESA_program_debug | Brian Paul | 2009-03-11 | 2 | -12/+6 |
| | |||||
* | glsl: remove _slang_attach_storage() function | Brian Paul | 2009-03-10 | 1 | -52/+21 |
| | | | | | | | | | This was used to handle both variable declarations and references to variables. Instead, just do storage allocation and assignment for declarations and references, respectively. This is a step toward better var/uniform allocation (only allocate storage for vars/uniforms that are actually referenced by the code). | ||||
* | glsl: some clean-ups, remove old assertions, add new assertions | Brian Paul | 2009-03-10 | 1 | -7/+6 |
| | |||||
* | glsl: remove stray/unneeded totalSize assignment | Brian Paul | 2009-03-10 | 1 | -1/+1 |
| | |||||
* | mesa: fix dumb sizeof() vs. strlen() mix-up | Brian Paul | 2009-03-10 | 1 | -1/+1 |
| | |||||
* | glsl: fix typo: s/vec4_tex1d_proj/vec4_tex_1d_proj/ | Brian Paul | 2009-03-10 | 2 | -24/+24 |
| | | | | This regression came from commit c0b59420eec5ffdf22a5919d38851c3620b97c09. |