aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa
Commit message (Collapse)AuthorAgeFilesLines
* mesa/dlist: restore missing SAVE_FLUSH_VERTICES in save_ShadeModelKeith Whitwell2009-06-301-0/+1
| | | | | Reorganization of ShadeModel to avoid flushing vertices too often ended up never flushing vertices due to omitted line of code.
* mesa/vbo: use _lookup_prim_by_nr for debuggingKeith Whitwell2009-06-304-4/+4
| | | | Switch over to specialized enum lookup for primitives
* mesa: add debug printer for primitive nameKeith Whitwell2009-06-302-0/+28
| | | | | | Add a simple version of _mesa_lookup_enum_by_nr() which expects a primitive enum (GL_POINTS..GL_POLYGON). This avoids some annoying duplicates when looking up primitives, such as the GL_FALSE/GL_POINTS clash.
* mesa/dlist: shortcircuit some redundant statechanges at compile timeKeith Whitwell2009-06-302-19/+51
| | | | | | | | | | | | | | | | | | | | | | | Currently, state-changes in mesa display lists are more or less a verbatim recording of the GL calls made during compilation. This change introduces a minor optimization to recognize and eliminate cases where the application emits redundant state changes, eg: glShadeModel( GL_FLAT ); glBegin( prim ) ... glEnd() glShadeModel( GL_FLAT ); glBegin( prim ) ... glEnd() The big win is when we can eliminate all the statechanges between two primitive blocks and combine them into a single VBO node. This commit implements state-change elimination for Material and ShadeModel only. This is enough to make a start on debugging, etc.
* glsl: check number of varying variables against the limitBrian Paul2009-06-261-4/+9
| | | | | | Link fails if too many varying vars. (cherry picked from master, commit cc58fbcf2c5c88f406818db60910f537e03610d6)
* mesa: raise MAX_VARYING (number of shader varying vars) to 16Brian Paul2009-06-261-1/+1
| | | | | | 16 is the limit for now because of various 32-bit bitfields. (cherry picked from master, commit 4e762395ef7e8c332c16fd0c11025cfa52763a45)
* intel / DRI2: Additional flush of fake front-buffer to real front-bufferIan Romanick2009-06-261-0/+11
| | | | | | | | | | | To maintain correctness, the server will copy the real front-buffer to a newly allocated fake front-buffer in DRI2GetBuffersWithFormat. However, if the DRI2GetBuffersWithFormat is triggered by glViewport, this will copy stale data into the new buffer. Fix this by flushing the current fake front-buffer to the real front-buffer in intel_viewport. Fixes bug #22288.
* mesa: bump version to 7.5-rc4Brian Paul2009-06-261-1/+1
|
* glsl: move/simplify error checking for 'return' statementsBrian Paul2009-06-261-22/+14
|
* glsl: overhaul 'return' statement handlingBrian Paul2009-06-263-215/+212
| | | | | | | A new node type (SLANG_OPER_RETURN_INLINED) is used to denote 'return' statements inside inlined functions which need special handling. All glean glsl1 tests pass for EmitContReturn=FALSE and TRUE.
* glsl: predicate assignments according to __returnFlagBrian Paul2009-06-261-4/+29
| | | | Fixes glean "function with early return (3)" case (when EmitContReturn=FALSE).
* glsl: added slang_variable::is_global fieldBrian Paul2009-06-261-0/+1
|
* glsl: silence a problem warningBrian Paul2009-06-261-1/+2
|
* glsl: code refactoring for return statementsBrian Paul2009-06-261-70/+88
|
* glsl: fix assorted regressions related to early-return-removalBrian Paul2009-06-262-14/+35
|
* glsl: comments, field reorderingBrian Paul2009-06-261-1/+4
|
* glsl: rework loop nesting codeBrian Paul2009-06-262-41/+87
|
* glsl: remove test for loop unrolling when we hit conditional cont/breakBrian Paul2009-06-261-4/+0
| | | | | This is no longer needed since we added the new _slang_loop_contains_continue_or_break() function/test.
* glsl: checkpoint: predicate __retVal = expr with __returnFlagBrian Paul2009-06-261-26/+60
| | | | The glean "function with early return (1)" test passes now.
* glsl: use new helper functions in _slang_gen_logical_and/or()Brian Paul2009-06-261-15/+9
|
* glsl: add commentsBrian Paul2009-06-261-0/+3
|
* glsl: checkpoint: replace 'return' with __returnFlag=true;Brian Paul2009-06-261-7/+68
| | | | Needed for "remove early returns" transformation.
* glsl: fix up scoping for parent/children in slang_operation_copy()Brian Paul2009-06-261-0/+9
| | | | This will need more testing, but no regressions seen so far.
* glsl: fix uninitialized var in _slang_gen_for_without_continue()Brian Paul2009-06-261-1/+1
|
* glsl: added slang_operation_free_children()Brian Paul2009-06-262-0/+17
|
* glsl: added slang_oper_num_children() helperBrian Paul2009-06-261-0/+7
|
* glsl: check-point: declare _returnFlagBrian Paul2009-06-261-0/+33
|
* glsl: added slang_operation_insert_child()Brian Paul2009-06-262-0/+23
|
* glsl: use slang_generate_declaration() to consolidate some codeBrian Paul2009-06-261-31/+37
|
* glsl: remove obsolete commentBrian Paul2009-06-261-3/+0
|
* st/mesa: query PIPE_CAP_TGSI_CONT_SUPPORTEDBrian Paul2009-06-261-0/+5
|
* glsl: implement _slang_gen_while_without_continue()Brian Paul2009-06-261-82/+115
|
* glsl: fix a bug involving 'continue' in 'for' loopsBrian Paul2009-06-262-23/+44
| | | | | | | | Need to execute the for loop's increment code before we continue. Add a slang_assemble_ctx::CurLoopOper field to keep track of the containing loop and avoid the "cont if true" path in this situation. Plus, assorted clean-ups.
* glsl: added slang_oper_child_const()Brian Paul2009-06-261-0/+8
|
* glsl: use _slang_loop_contains_continue_or_break() to check for unrollingBrian Paul2009-06-261-5/+36
| | | | The previous test failed for nested loops.
* glsl: use new _slang_loop_contains_continue() helper functionBrian Paul2009-06-261-5/+126
|
* glsl: implement continue->break translation for do-while loopsBrian Paul2009-06-261-15/+219
|
* glsl: added slang_operation_literal_int/bool() helper functionsBrian Paul2009-06-261-0/+26
|
* glsl: don't allocate 0-length children array in slang_operation_copy()Brian Paul2009-06-261-6/+7
|
* glsl: remove debug code, misc clean-upBrian Paul2009-06-261-5/+0
|
* glsl: implement continue->break transformation for for-loopsBrian Paul2009-06-261-3/+167
|
* glsl: added slang_operation_add_children() and slang_oper_child() helpersBrian Paul2009-06-262-0/+25
|
* glsl: added slang_assemble_ctx::EmitContReturn field, initBrian Paul2009-06-262-0/+4
|
* glsl: don't unroll loops containing continue/breakBrian Paul2009-06-261-0/+6
| | | | Just search the AST in _slang_can_unroll_for_loop().
* Revert "slang: if/else/break & if/else/continue work for unrolled loops"Brian Paul2009-06-262-38/+7
| | | | | | | | | | | We should just check if the loop contains a continue/break in the _slang_can_unroll_for_loop() test function... This reverts commit 989856bde47d699d7e18798df4013fbf962e1d4b. Conflicts: src/mesa/shader/slang/slang_codegen.h
* glsl: Added gl_shader_state::EmitContReturn fieldBrian Paul2009-06-262-0/+2
| | | | | | | This is the start of a glsl-continue-return feature branch to support a GLSL code generator option for 'continue' and 'return' statements. Some targets don't support CONT or RET statements so we'll need to try to generate code that does not use them...
* i965: handle OPCODE_SWZ in the glsl pathRoland Scheidegger2009-06-221-0/+1
| | | | | | | glsl compiler will not generate OPCODE_SWZ, and as a first step it would be translated away to a MOV anyway (why?), but later internally this opcode is generated (for EXT_texture_swizzling). (cherry picked from commit 4ef1f8e3b52a06fcf58f78c9c36738531b91dbac)
* intel: intel_texture_drawpixels() can't handle GL_DEPTH_STENCIL.Michel Dänzer2009-06-221-1/+1
| | | | | Fixes glean depthStencil test. (cherry picked from commit 3885b708fdbb7bbd5dd3a247c41fb9a75ee7c057)
* i965: added intelFlush() call in intel_get_tex_image()Brian Paul2009-06-221-0/+6
| | | | | Fixes the render-to-texture test in progs/tests/getteximage.c (cherry picked from commit a03b349153660e449daf4f56d750f1caef23b1a5)
* mesa: s/MAX_VERTEX_PROGRAM_ATTRIBS/MAX_NV_VERTEX_PROGRAM_INPUTS/ in NV funcsBrian Paul2009-06-221-8/+8
| | | | (cherry picked from commit 4dc426c01627a240bd5b148c1804c45b0d5ecd6c)