summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* mesa: add a comment in _mesa_test_formatsMarek Olšák2011-07-111-0/+1
|
* mesa: fix assertion failure in _mesa_test_formatsMarek Olšák2011-07-111-1/+2
| | | | Z32_FLOAT_X24S8 has DataType of GL_NONE.
* Revert "WIP r600g: depth_buffer_float renderbuffer support on evergreen"Marek Olšák2011-07-111-13/+1
| | | | | | This reverts commit 91a52dae97379d118965567b5c11e393996baeb9. Pushed accidentally.
* r600g: more valgrind fixesMarek Olšák2011-07-111-2/+2
|
* r600g: zero memory of ioctl parametersMarek Olšák2011-07-111-3/+3
| | | | Fixes valgrind warning.
* mesa: implement packing of DEPTH_STENCIL & FLOAT_32_UNSIGNED_INT_24_8_REV comboMarek Olšák2011-07-114-9/+20
| | | | Tested with the new piglit fbo-depthstencil test.
* WIP r600g: depth_buffer_float renderbuffer support on evergreenMarek Olšák2011-07-101-1/+13
|
* swrast: fix depth/stencil blits when there's no colorbufferMarek Olšák2011-07-101-3/+0
| | | | NOTE: This is a candidate for the 7.10 and 7.11 branches.
* mesa: return early if mask is cleared to zero in BlitFramebufferMarek Olšák2011-07-101-0/+4
| | | | | | | From ARB_framebuffer_object: If a buffer is specified in <mask> and does not exist in both the read and draw framebuffers, the corresponding bit is silently ignored.
* r600g: depth_buffer_float support on r600-r700Marek Olšák2011-07-102-0/+18
|
* gallium/util: handle Z32F_FLOAT_S8X24_USCALED in pipe_tile_raw_to_rgbaMarek Olšák2011-07-101-0/+35
| | | | And make pipe_put_tile_rgba_format no-op like the other Z formats.
* gallium/util: implement software Z32F_S8X24 depth-stencil clearMarek Olšák2011-07-101-1/+34
|
* gallium/util: implement pack functions for Z32F and Z32F_S8X24Marek Olšák2011-07-101-0/+64
|
* st/mesa: implement read/draw/copypixels for Z32F and Z32F_S8X24Marek Olšák2011-07-102-9/+98
|
* st/mesa: initial ARB_depth_buffer_float supportMarek Olšák2011-07-103-2/+34
|
* mesa: implement depth/stencil renderbuffer wrapper accessors for Z32F_X24S8Marek Olšák2011-07-103-24/+313
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: implement generatemipmap for GL_FLOAT_32_UNSIGNED_INT_24_8_REVMarek Olšák2011-07-101-0/+20
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: implement texstore for DEPTH32F_STENCIL8Marek Olšák2011-07-101-1/+67
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: implement texstore for DEPTH_COMPONENT32FMarek Olšák2011-07-101-5/+7
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: implement depth unpacking for GL_FLOAT_32_UNSIGNED_INT_24_8_REVMarek Olšák2011-07-101-2/+25
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: implement stencil unpacking for GL_FLOAT_32_UNSIGNED_INT_24_8_REVMarek Olšák2011-07-101-3/+32
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: implement texfetch functions for depth_buffer_floatMarek Olšák2011-07-102-8/+31
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: initial ARB_depth_buffer_float supportMarek Olšák2011-07-109-6/+125
| | | | | | | Using GL_NONE as DataType of Z32_FLOAT_X24S8, not sure what I should put there. The spec says the type is n/a. Reviewed-by: Kenneth Graunke <[email protected]>
* r600g: LIT: clamp negative src.y to 0Vadim Girlin2011-07-101-5/+24
| | | | | | | Fixes https://bugs.freedesktop.org/show_bug.cgi?id=39083 Signed-off-by: Vadim Girlin <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* st/dri: remove unused variablesMarek Olšák2011-07-101-2/+0
|
* st/egl: fix linking errorsChia-I Wu2011-07-101-0/+18
| | | | Add symbols referenced by src/glx/dri2.c.
* intel: Recognize all depth formats in get_teximage_readbuffer.Kenneth Graunke2011-07-091-8/+4
| | | | | | | | | | | | | | | | | | | The existing code was missing GL_DEPTH_COMPONENT32, resulting in it wrongly returning the color buffer instead of the depth buffer. Fixes an issue in PlaneShift 0.5.7 when casting spells. The game calls CopyTexSubImage2D on buffers with a GL_DEPTH_COMPONENT32 internal format, which (prior to this patch) resulted in an attempt to copy ARGB8888 to X8_Z24. Instead of adding the missing enumeration directly, convert the code to use _mesa_is_depth_format() and _mesa_is_depthstencil_format() as these should catch any newly added depth formats in the future. NOTE: This is a candidate for the 7.10 and 7.11 branches. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* r600g: Get rid of some superfluous braces.Henri Verbeet2011-07-092-14/+14
| | | | Signed-off-by: Henri Verbeet <[email protected]>
* r600g: Check for Evergreen chip class instead of Cedar family in ↵Henri Verbeet2011-07-091-1/+1
| | | | | | r600_context_flush(). Signed-off-by: Henri Verbeet <[email protected]>
* r600g: Store the chip class directly in r600_bc.Henri Verbeet2011-07-093-49/+6
| | | | | | Instead of deriving it from the family again. Signed-off-by: Henri Verbeet <[email protected]>
* r600g: Replace the CHIPREV_* defines with the chip_class enum.Henri Verbeet2011-07-095-99/+93
| | | | Signed-off-by: Henri Verbeet <[email protected]>
* r600g: Get rid of the superfluous family field from r600_shader.Henri Verbeet2011-07-092-6/+4
| | | | Signed-off-by: Henri Verbeet <[email protected]>
* r600g: Store the chip class in r600_pipe_context.Henri Verbeet2011-07-096-70/+36
| | | | Signed-off-by: Henri Verbeet <[email protected]>
* r600g: Fix the type of the family field in r600_pipe_context.Henri Verbeet2011-07-091-1/+1
| | | | Signed-off-by: Henri Verbeet <[email protected]>
* i965/gen4: Fix GPU hangs since the program streaming change.Eric Anholt2011-07-091-1/+1
| | | | | | | | | | This was tricky. We were doing a use-before-initialize of grf_reg_count, but the value usually got overwritten anyway -- when we didn't have to do a relocation (typical), or on gen5 when we didn't have relocations at all. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38771 Reviewed-by: Kenneth Graunke <[email protected]>
* i965/gen7: Remove gratuitous dirty flags from WM and PS state.Kenneth Graunke2011-07-081-8/+3
| | | | | | | | | | | | | | | | Commit b46dc45ceef3deb17ba2b0b4300eeb93e9cf7833 claimed that NEW_POLYGONSTIPPLE is gratuitous, but somehow just changed comments and whitespace instead of actually removing the flag. While we're at it, 3DSTATE_PS doesn't appear to need NEW_LINE or NEW_POLYGON either (those are in 3DSTATE_WM). Also, 3DSTATE_WM doesn't appear to need BRW_NEW_NR_WM_SURFACES or BRW_NEW_CURBE_OFFSETS either (those are in 3DSTATE_PS). NOTE: This is a candidate for the 7.11 branch. Reviewed-by: Eric Anholt <[email protected]> Signed-off-by: Kenneth Graunke <[email protected]>
* r600g: introduce r600_bc_src_toggle_neg helper and fix SUB & LRPVadim Girlin2011-07-081-2/+7
| | | | | | | SUB & LRP instructions should toggle NEG bit instead of setting it, otherwise e.g. "SUB a,b,-1" is translated as "ADD a,b,-1" Signed-off-by: Vadim Girlin <[email protected]>
* r600g: introduce r600_bc_src_set_abs helper and fix LOGVadim Girlin2011-07-081-8/+18
| | | | | | LOG instruction should use absolute values of source operand. Signed-off-by: Vadim Girlin <[email protected]>
* r600g: RSQ: clear NEG for operandVadim Girlin2011-07-081-0/+1
| | | | | | | Need to clear NEG bit because it applies after ABS, e.g. "RSQ ..., -1" uses -|1| as operand. Signed-off-by: Vadim Girlin <[email protected]>
* r600g: LIT: swap MUL_LIT operands to fix 0^0Vadim Girlin2011-07-081-6/+5
| | | | | | | | | | For 0^0 case result of "LOG_CLAMPED ...,0" is -MAX_FLOAT, and then result of "MUL_LIT ...,0,-MAX_FLOAT,..." is -MAX_FLOAT instead of 0 because of special src1 checks for -MAX_FLOAT. So swap src0/1: "MUL_LIT ...,-MAX_FLOAT,0,..." to get expected 0, then result of "EXP_IEEE ...,0" is 1 as expected for LIT. Signed-off-by: Vadim Girlin <[email protected]>
* GLX/DRI2: handle swap event swap count wrappingJesse Barnes2011-07-085-2/+108
| | | | | | | | | | | Create a new GLX drawable struct to track client related info, and add a wrap counter to it drawable and track it as we receive events. This allows us to support the full 64 bits of the event structure we pass to the client even though the server only gives us a 32 bit count. Reviewed-by: Michel Dänzer <[email protected]> Reviewed-by: Jeremy Huddleston <[email protected]> Signed-off-by: Jesse Barnes <[email protected]>
* DRI2/GLX: use new swap event typesJesse Barnes2011-07-082-4/+4
| | | | | | | | Use the new swap event type so we get valid SBC values. Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Jeremy Huddleston <[email protected]> Signed-off-by: Jesse Barnes <[email protected]>
* glsl: Lower break instructions when necessary at the end of a loop.Paul Berry2011-07-081-1/+54
| | | | | | | | | | | | | | | | | | Normally lower_jumps.cpp doesn't need to lower a break instruction that occurs at the end of a loop, because all back-ends can produce proper GPU instructions for a break instruction in this "canonical" location. However, if other break instructions within the loop are already being lowered, then a break instruction at the end of the loop needs to be lowered too, since after the optimization is complete a new conditional break will be inserted at the end of the loop. Without this patch, lower_jumps.cpp may require multiple passes in order to lower all jumps. This results in sub-optimal output because lower_jumps.cpp produces a brand new set of temporary variables each time it is run, and the redundant temporary variables are not guaranteed to be eliminated by later optimization passes. Fixes unit test test_lower_breaks_6.
* glsl: In lower_jumps.cpp, lower both branches of a conditional.Paul Berry2011-07-081-1/+4
| | | | | | | | | | | | | | | Previously, lower_jumps.cpp would break out of its loop after lowering a jump instruction in just the then- or else-branch of a conditional, and it would fail to lower a jump instruction occurring in the other branch. Without this patch, lower_jumps.cpp may require multiple passes in order to lower all jumps. This results in sub-optimal output because lower_jumps.cpp produces a brand new set of temporary variables each time it is run, and the redundant temporary variables are not guaranteed to be eliminated by later optimization passes. Fixes unit test test_lower_returns_4.
* glsl: Use foreach_list in lower_jumps.cppPaul Berry2011-07-081-1/+12
| | | | | | | | | | | | | | | | | | | | | | | The visitor class in lower_jumps.cpp never removes or replaces the instruction being visited, but it frequently alters or removes the instructions that follow it. Therefore, to make sure the altered IR is visited, it needs to iterate through exec_lists using foreach_list rather than visit_exec_list(). Without this patch, lower_jumps.cpp may require multiple passes in order to lower all jumps. This results in sub-optimal output because lower_jumps.cpp produces a brand new set of temporary variables each time it is run, and the redundant temporary variables are not guaranteed to be eliminated by later optimization passes. Also, certain invariants assumed by lower_jumps.cpp may fail to hold, causing assertion failures. Fixes unit tests test_lower_pulled_out_jump, test_lower_unified_returns, test_lower_guarded_conditional_break, test_lower_return_non_void_at_end_of_loop, and test_lower_returns_3. Reviewed-by: Kenneth Graunke <[email protected]>
* glsl: lower unconditional returns and continues in loops.Paul Berry2011-07-081-8/+54
| | | | | | | | | | | | | | | | | Previously, lower_jumps.cpp would only lower return and continue statements that appeared inside conditionals. This patch makes it lower unconditional returns and continue statements that occur inside a loop. Such unconditional flow control statements would be unlikely to be explicitly coded by a reasonable user, however they might arise as a result of other optimizations. Without this patch, lower_jumps.cpp might not lower certain return and continue statements, causing some backends to fail. Fixes unit tests test_lower_return_void_at_end_of_loop and test_remove_continue_at_end_of_loop.
* glsl: Lower unconditional return statements.Paul Berry2011-07-081-0/+14
| | | | | | | | | | Previously, lower_jumps.cpp only lowered return statements that appeared inside of an if statement. Without this patch, lower_jumps.cpp might not lower certain return statements, causing some back-ends to fail (as in bug #36669). Fixes unit test test_lower_returns_1.
* glsl: Refactor logic for determining whether to lower return statements.Paul Berry2011-07-081-7/+12
| | | | | | | | Previously, do_lower_jumps.cpp determined whether to lower return statements in ir_lower_jumps_visitor::should_lower_jumps(). Moved this logic to ir_lower_jumps_visitor::visit(ir_function_signature *), so that it can be used in determining whether to lower a return statement at the end of a function.
* glsl: Add explanatory comments to lower_jumps.cpp.Paul Berry2011-07-081-14/+322
| | | | | | No functional change. Reviewed-by: Kenneth Graunke <[email protected]>
* glsl: Make ir_reader able to read plain (return) statements.Paul Berry2011-07-081-11/+13
| | | | | | | | | Previously ir_reader was only able to handle return of non-void. This patch is necessary in order to allow optimization passes to be tested in isolation. Reviewed-by: Kenneth Graunke <[email protected]>