Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | ir_to_mesa: Try to avoid emitting a MOV_SAT to saturate an expression tree. | Eric Anholt | 2011-08-05 | 1 | -4/+24 |
| | | | | | | Fixes a regression in codegen quality for ff_fragment_shader conversion to GLSL -- glean texCombine produces 7.5% fewer Mesa IR instructions. | ||||
* | prog_optimize: Add support for saturates to _mesa_merge_mov_into_inst. | Eric Anholt | 2011-08-05 | 1 | -3/+5 |
| | | | | | This fixes the remaining regression from ff_fragment_shader in Mesa IR instruction count, to now being a 1.9% win overall. | ||||
* | i965: Add dumping for gen6 WM constants too. | Eric Anholt | 2011-08-05 | 3 | -1/+22 |
| | | | | This looks just like the VS dump for now. | ||||
* | mesa: Remove dead "MemPool" field of gl_shader_state. | Eric Anholt | 2011-08-05 | 1 | -2/+0 |
| | |||||
* | i965/fs: Don't upload unused uniform components. | Eric Anholt | 2011-08-05 | 2 | -4/+95 |
| | | | | | | | | | This saves both register space and upload bandwidth for unused values. Note that previously we were relying on the visitor not initially generating references to different sets of uniforms between the 8-wide and 16-wide code generation, and now we're relying on them dead-code eliminating the same stuff, too. | ||||
* | i965/fs: Don't allocate the old backend's compile structs for our compile. | Eric Anholt | 2011-08-05 | 1 | -4/+7 |
| | | | | This saves some 35MB when the program only uses GLSL shaders. | ||||
* | st/mesa: remove unused-but-set variables in st_glsl_to_tgsi.cpp | Marek Olšák | 2011-08-05 | 1 | -3/+2 |
| | |||||
* | vbo: do not call _mesa_max_buffer_index in debug builds | Marek Olšák | 2011-08-05 | 1 | -3/+1 |
| | | | | | | | | | That code drops performance in Unigine Heaven and Tropics by a factor of 10. That's too crazy even for a debug build. NOTE: This is a candidate for the 7.11 branch. Reviewed-by: Brian Paul <[email protected]> | ||||
* | mesa: Remove MSVC stdint typedefs from compiler.h. | Vinson Lee | 2011-08-04 | 1 | -23/+1 |
| | | | | MSVC can now include the stdint.h at include/c99/stdint.h. | ||||
* | mesa: pass correct constant type to _mesa_fetch_state() | Brian Paul | 2011-08-04 | 1 | -1/+1 |
| | | | | Fixes assorted warnings about float vs. gl_constant_value pointers. | ||||
* | mesa: use gl_constant_value type in ARB program parser | Brian Paul | 2011-08-04 | 2 | -29/+30 |
| | |||||
* | mesa: use gl_constant_value type in _mesa_[Get]ProgramNamedParameter4fNV() | Brian Paul | 2011-08-04 | 1 | -10/+10 |
| | |||||
* | mesa: add st_glsl_to_tgsi.cpp to Sconscript | Brian Paul | 2011-08-04 | 1 | -0/+1 |
| | |||||
* | mesa: fix out of bounds array access in rtgc debug code | Brian Paul | 2011-08-04 | 1 | -1/+1 |
| | | | | | Fixes https://bugs.freedesktop.org/show_bug.cgi?id=39841 This would only be hit if someone set RGTC_DEBUG=1. | ||||
* | mesa: don't use K&R style function pointer calls | Brian Paul | 2011-08-04 | 1 | -3/+3 |
| | |||||
* | Merge branch 'glsl-to-tgsi' | Bryan Cain | 2011-08-04 | 32 | -322/+5579 |
|\ | | | | | | | | | | | Conflicts: src/mesa/state_tracker/st_atom_pixeltransfer.c src/mesa/state_tracker/st_program.c | ||||
| * | st/mesa: replace duplicated create_color_map_texture() function with shared ↵ | Bryan Cain | 2011-08-04 | 4 | -43/+26 |
| | | | | | | | | function | ||||
| * | glsl_to_tgsi: remove debugging printf | Bryan Cain | 2011-08-04 | 1 | -1/+0 |
| | | |||||
| * | glsl_to_tgsi: copy reladdr in st_src_reg(st_dst_reg) constructor | Bryan Cain | 2011-08-01 | 1 | -1/+1 |
| | | | | | | | | This is a glsl_to_tgsi port of commit f7cd9a858c04. | ||||
| * | glsl_to_tgsi: add each relative address to the previous | Bryan Cain | 2011-08-01 | 1 | -0/+12 |
| | | | | | | | | This is a glsl_to_tgsi port of commit d6e1a8f71437. | ||||
| * | glsl_to_tgsi: lower all ir_quadop_vector expressions | Bryan Cain | 2011-08-01 | 1 | -1/+1 |
| | | | | | | | | Unlike Mesa IR, TGSI doesn't have a SWZ opcode. | ||||
| * | glsl_to_tgsi: rework immediate tracking to not use gl_program_parameter_list | Bryan Cain | 2011-08-01 | 1 | -47/+88 |
| | | |||||
| * | glsl_to_tgsi: update comments | Bryan Cain | 2011-08-01 | 1 | -12/+11 |
| | | |||||
| * | glsl_to_tgsi: make coding style more consistent | Bryan Cain | 2011-08-01 | 1 | -137/+126 |
| | | |||||
| * | glsl_to_tgsi: make assignment hack safer | Bryan Cain | 2011-08-01 | 1 | -3/+4 |
| | | | | | | | | Fixes an assertion failure in piglit test glsl-texcoord-array. | ||||
| * | glsl_to_tgsi: separate immediates from array constants during IR translation | Bryan Cain | 2011-08-01 | 1 | -48/+95 |
| | | | | | | | | | | | | | | | | Before, if any uniform or constant array was accessed with indirect addressing, st_translate_program() would emit uniform constants in the place of immediates. This behavior was unavoidable with ir_to_mesa/mesa_to_tgsi, but glsl_to_tgsi can work around it since the GLSL IR backend and the TGSI emission are both inside the state tracker. | ||||
| * | glsl_to_tgsi: fix mistakes in get_pixel_transfer_visitor() | Bryan Cain | 2011-08-01 | 1 | -3/+3 |
| | | | | | | | | I noticed these issues while working on get_bitmap_visitor(). | ||||
| * | st/mesa, glsl_to_tgsi: support glBitmap with a GLSL fragment shader active | Bryan Cain | 2011-08-01 | 3 | -6/+105 |
| | | |||||
| * | st/mesa, glsl_to_tgsi: support glDrawPixels/glCopyPixels with a GLSL ↵ | Bryan Cain | 2011-08-01 | 3 | -0/+194 |
| | | | | | | | | | | | | | | fragment shader active Since this was previously implemented using Mesa IR and _mesa_combine_programs, this commit adds a new code path that works with glsl_to_tgsi. | ||||
| * | glsl_to_tgsi: replace MAX_PROGRAM_TEMPS (256) with MAX_TEMPS (4096) | Bryan Cain | 2011-08-01 | 1 | -6/+8 |
| | | |||||
| * | r200, r600c, i965: fix build | Bryan Cain | 2011-08-01 | 7 | -30/+30 |
| | | |||||
| * | glsl_to_tgsi: always run copy_propagate() and eliminate_dead_code_advanced() | Bryan Cain | 2011-08-01 | 1 | -5/+4 |
| | | | | | | | | These two passes are written to handle indirect addressing properly. | ||||
| * | glsl_to_tgsi: fix mistake in new dead code elimination pass | Bryan Cain | 2011-08-01 | 1 | -4/+4 |
| | | | | | | | | | | The conditions of IF opcodes were not being counted as reads, which sometimes led to the condition register being wrong or undefined. | ||||
| * | glsl_to_tgsi: improve assignment handling | Bryan Cain | 2011-08-01 | 1 | -3/+14 |
| | | | | | | | | | | This is a hack, but it's better than emitting an unnecessary MOV instruction and hoping the optimization passes clean it up. | ||||
| * | glsl_to_tgsi: improve eliminate_dead_code_advanced() | Bryan Cain | 2011-08-01 | 1 | -0/+9 |
| | | |||||
| * | glsl_to_tgsi: use the correct writemask in try_emit_mad() and try_emit_sat() | Bryan Cain | 2011-08-01 | 1 | -2/+7 |
| | | |||||
| * | glsl_to_tgsi: use a more specific condition for gl_FragDepth hack in ↵ | Bryan Cain | 2011-08-01 | 1 | -2/+2 |
| | | | | | | | | | | | | | | generating assignments This reduces the number of instructions in the fragment shader of glsl-fs-atan-2 from 174 to 146 with EmitNoIfs enabled. | ||||
| * | glsl_to_tgsi: add a better, more advanced dead code elimination pass | Bryan Cain | 2011-08-01 | 1 | -0/+140 |
| | | |||||
| * | glsl_to_tgsi: remove handling of XPD opcode in compile_tgsi_instruction() | Bryan Cain | 2011-08-01 | 1 | -8/+0 |
| | | | | | | | | | | The opcode is never emitted by the glsl_to_tgsi_visitor, so its special case in compile_tgsi_instruction() was dead code. | ||||
| * | glsl_to_tgsi: use swizzle_for_size for src reg in conditional moves | Bryan Cain | 2011-08-01 | 1 | -2/+5 |
| | | | | | | | | | | This prevents the copy propagation pass from being confused by undefined channels and thus missing optimization opportunities. | ||||
| * | glsl_to_tgsi: execute merge_registers() after eliminate_dead_code() | Emil Velikov | 2011-08-01 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | | | Fixes a regression unintentionally introduced by "glsl_to_tgsi: fix shaders with indirect addressing of temps" that caused missing leaves in 3dmark01 test 4 (Nature) and missing/displaced textures on human models in Counter-Strike: Source. Signed-off-by: Emil Velikov <[email protected]> Signed-off-by: Bryan Cain <[email protected]> | ||||
| * | glsl_to_tgsi: implement simplify_cmp pass needed by r300g | Bryan Cain | 2011-08-01 | 1 | -0/+95 |
| | | |||||
| * | glsl_to_tgsi: fix compile error with g++ 4.6 | Bryan Cain | 2011-08-01 | 1 | -1/+1 |
| | | |||||
| * | glsl: remove glsl_type::get_vec4_type() | Bryan Cain | 2011-08-01 | 1 | -2/+2 |
| | | | | | | | | | | | | | | | | Thanks to Kenneth Graunke for pointing out that glsl_type::get_instance(base, 4, 1) is the same as glsl_type::get_vec4_type(base). The function was only used in st_glsl_to_tgsi, and this commit replaces that usage with get_instance. | ||||
| * | glsl_to_tgsi: silence compiler warning | Bryan Cain | 2011-08-01 | 1 | -1/+1 |
| | | |||||
| * | glsl_to_tgsi: finish some loose ends | Bryan Cain | 2011-08-01 | 1 | -10/+36 |
| | | |||||
| * | glsl-to-tgsi: fix piglit tests | Bryan Cain | 2011-08-01 | 1 | -9/+11 |
| | | | | | | | | | | This commit fixes all of the piglit tests regressed by "mesa, glsl_to_tgsi: add native support for integers in shaders" on softpipe. | ||||
| * | mesa, glsl_to_tgsi: add native support for integers in shaders | Bryan Cain | 2011-08-01 | 4 | -60/+313 |
| | | | | | | | | | | Disabled by default on all drivers. To enable it, change ctx->GLSLVersion to 130 in st_extensions.c. Currently, softpipe is the only driver with integer support. | ||||
| * | mesa: support boolean and integer-based parameters in prog_parameter | Bryan Cain | 2011-08-01 | 13 | -66/+88 |
| | | | | | | | | | | | | The functionality is not used by anything yet, and the glUniform functions will need to be reworked before this can reach its full usefulness. It is nonetheless a step towards integer support in the state tracker and classic drivers. | ||||
| * | glsl_to_tgsi: fix shaders with indirect addressing of temps | Bryan Cain | 2011-08-01 | 1 | -4/+12 |
| | | | | | | | | Fixes several Piglit tests, although it's a step backwards for optimization. |