summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary
Commit message (Collapse)AuthorAgeFilesLines
* gallium/u_blit: don't do two copies for non-2D texturesMarek Olšák2012-07-121-33/+39
| | | | | | | | | Because u_blit couldn't sample a 1D, 3D, CUBE and ARRAY texture, we created a 2D texture holding a copy of one slice of the source texture (even for 1D). Let's just do it right. Reviewed-by: Alex Deucher <[email protected]>
* gallium/util: move pipe_tex_to_tgsi_tex helper function into u_inlinesMarek Olšák2012-07-122-30/+30
| | | | Reviewed-by: Alex Deucher <[email protected]>
* gallium/u_blitter: accelerate stencil-only copyingMarek Olšák2012-07-123-1/+79
| | | | | | This doesn't seem to be used by anything yet, but better safe than sorry. Reviewed-by: Alex Deucher <[email protected]>
* gallium/u_blitter: accelerate depth-stencil copying using shader stencil exportMarek Olšák2012-07-124-12/+147
| | | | | | This fixes stencil buffer write transfers on r600g. Reviewed-by: Alex Deucher <[email protected]>
* gallium: add util_format_stencil_only helper functionMarek Olšák2012-07-121-0/+29
| | | | | | used for stencil sampler views. Reviewed-by: Alex Deucher <[email protected]>
* gallium/u_blitter: minify depth0 when initializing last_layerMarek Olšák2012-07-121-1/+1
| | | | Reviewed-by: Alex Deucher <[email protected]>
* gallium/u_gen_mipmap: accelerate depth texture mipmap generationMarek Olšák2012-07-121-26/+58
| | | | Reviewed-by: Alex Deucher <[email protected]>
* gallium/u_blitter: consolidate some state changesMarek Olšák2012-07-091-32/+17
|
* target-helpers: Enable debug helpers only on debug builds.José Fonseca2012-07-061-0/+7
| | | | Some of these helpers use debug_get_option, which works also on releases.
* gallium/util: Save and restore vertex buffer state in util_gen_mipmap.Stuart Abercrombie2012-07-041-0/+2
| | | | | | | | | | | | | Calling glGenerateMipmap could overwrite vertex buffer state, leading to incorrect rendering or crashes depending on the Gallium driver. This was happening on WebGL Conformance test texture-size. Before 784dd51198433e5c299da4a7742c68d21d68d1c1 this was covered up by redundant vertex buffer validation. Reviewed-by: Stéphane Marchesin <[email protected]> Signed-off-by: Marek Olšák <[email protected]>
* gallium/tgsi: Don't declare temps individually when they are all similar.José Fonseca2012-07-021-8/+19
| | | | | | | | | | | | tgsi_ureg was recently enhanced to support local temporaries, and as result temps are declared individually. This change avoids many TEMP register declarations on common shaders. (And fixes performance regression due to mismatches against performance sensitive shaders.) Reviewed-by: Brian Paul <[email protected]>
* gallivm: Cleanup the 4 x float -> 16 ub special path in lp_build_conv.José Fonseca2012-07-021-49/+26
| | | | | | No behaviour change intended. Reviewed-by: Roland Scheidegger <[email protected]>
* gallium/util: Add ULL suffix to large constants.José Fonseca2012-07-021-3/+3
| | | | | As suggested by Andy Furniss: it looks like some old gcc versions require it.
* gallium/util: Truly disable INF/NAN tests on MSVC.José Fonseca2012-06-291-1/+1
| | | | Thanks to Brian for spotting this.
* gallium/util: Disable INF/NAN tests on MSVC.José Fonseca2012-06-291-1/+7
| | | | Somehow they are not recognized as constants.
* translate: Free elt8_func/elt16_func too.José Fonseca2012-06-291-1/+3
| | | | | | | These were leaking. Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* util: Reimplement half <-> float conversions.James Benton2012-06-297-227/+69
| | | | | | | | | | Removed u_half.py used to generate the table for previous method. Previous implementation of float to half conversion was faulty for denormalised and NaNs and would require extra logic to fix, thus making the speedup of using tables irrelevant. Reviewed-by: Jose Fonseca <[email protected]>
* tests: Updated tests to properly handle NaN for half floats.James Benton2012-06-291-2/+4
| | | | Reviewed-by: Jose Fonseca <[email protected]>
* util: Updated u_format_tests to rigidly test half-float boundary values.James Benton2012-06-291-0/+30
| | | | Reviewed-by: Jose Fonseca <[email protected]>
* util: Added functions for checking NaN / Inf for double and half-floats.James Benton2012-06-291-2/+102
| | | | Reviewed-by: Jose Fonseca <[email protected]>
* util: Added util_format_is_array.James Benton2012-06-292-0/+39
| | | | | | This function checks whether a format description is in a simple array format. Reviewed-by: Jose Fonseca <[email protected]>
* gallivm: Refactor lp_build_broadcast(_scalar) to share code.José Fonseca2012-06-281-36/+28
| | | | | | | Doesn't really change the generated assembly, but produces more compact IR, and of course, makes code more consistent. Reviewed-by: Brian Paul <[email protected]>
* gallivm: Fix potential buffer overflowing in strncat.Johannes Obermayr2012-06-281-3/+3
| | | | Signed-off-by: José Fonseca <[email protected]>
* gallium/util: Fix parsing of options with underscore.José Fonseca2012-06-271-1/+1
| | | | | | | | For example GALLIVM_DEBUG=no_brilinear which was being parsed as two options, "no" and "brilinear".
* gallivm: Added a generic lp_build_print_value which prints a LLVMValueRef.James Benton2012-06-272-117/+117
| | | | | | | | Updated lp_build_printf to share common code. Removed specific lp_build_print_vecX. Reviewed-by: José Fonseca <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* u2f_emit: Fix type parameter in LLVM call.Olivier Galibert2012-06-261-1/+1
| | | | | | | | The type is the destination type (i.e. float vector) and not the source type. Fixes piglit fs-{in,de}crement-uint. Signed-off-by: Olivier Galibert <[email protected]> Signed-off-by: José Fonseca <[email protected]>
* u_blitter: disable streamout before renderingMarek Olšák2012-06-261-0/+10
| | | | | | This fixes piglit EXT_transform_feedback tests: - intervening-read output - intervening-read prims_written
* draw: Handle the case when there isn't a fragment shader.Olivier Galibert2012-06-221-10/+17
| | | | | Signed-off-by: Olivier Galibert <[email protected]> Signed-off-by: José Fonseca <[email protected]>
* llvmpipe: Add vertex id support.Olivier Galibert2012-06-193-18/+38
| | | | | Signed-off-by: Olivier Galibert <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* llvmpipe: Simplify and fix system variables fetch.Olivier Galibert2012-06-193-77/+32
| | | | | | | | | | | | | | The system array values concept doesn't really because it expects the system values to be fixed per call, which is wrong for gl_VertexID and iffy for gl_SampleID. So this patch does two things: - kill the array, have emit_fetch_system_value directly pick the values it needs (only gl_InstanceID for now, as the previous code) - correctly handle the expected type in emit_fetch_system_value Signed-off-by: Olivier Galibert <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* draw: fix flat shading and screen-space linear interpolation in clipperOlivier Galibert2012-06-191-31/+113
| | | | | | | | | | | | | | | This includes: - picking up correctly which attributes are flatshaded and which are noperspective - copying the flatshaded attributes when needed, including the non-built-in ones - correctly interpolating the noperspective attributes in screen-space instead than in a 3d-correct fashion. Signed-off-by: Olivier Galibert <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* draw: Ensure that the vertex_header type size matches expectation.José Fonseca2012-06-181-0/+3
| | | | | | | | | This is failing sometimes, probably because TargetData keeps a structure layout cache, which can becomes bogus, ever since the InvalidateStructLayoutInfo API was removed in LLVM r135245. This change merely makes the problem easier to diagnose (an assertion failure instead of a random crash).
* gallium: Add TGSI_OPCODE_F2U to gallivm backend.Paul Berry2012-06-151-0/+13
| | | | | | | | Note: for the moment TGSI_OPCODE_F2U is implemented using lp_build_itrunc() (the same function used to implement TGSI_OPCODE_F2I). In the long run, we should create an lp_build_utrunc() function to do the proper conversion. But this should allow us to limp along with mostly correct behaviour for now.
* rbug: fix make process on Linux Mint 13 x64.Aaron Watry2012-06-1412-20/+20
| | | | | | | | | | | | | | | | | | | Previously, rbug_*.c would fail to compile with incomplete prototype errors when make was run from the command line on my machine. My IDE always built fine, and still does after this patch (Netbeans 7.1.2). Most of the includes from files in gallium/auxiliary/rbug/* were assuming an rbug/ subdirectory, while the headers are actually in the same directory as the .c files. The build error was also previously a problem for me on Ubuntu 11.10 and Mint 12. Fixes build for the following configuration: ./autogen.sh --enable-debug --enable-texture-float --with-gallium-drivers=r600 --with-dri-drivers=radeon --enable-r600-llvm-compiler Signed-off-by: Brian Paul <[email protected]>
* util: add some comments, fix indentationBrian Paul2012-06-131-1/+5
|
* gallivm: Fix calculating rho for 3d textures for the single-quad caseRoland Scheidegger2012-06-081-2/+1
| | | | | | Discovered by accident, this looks like a very old typo bug. Signed-off-by: José Fonseca <[email protected]>
* draw: simplify index buffer specificationBrian Paul2012-05-315-43/+24
| | | | | Replace draw_set_index_buffer() and draw_set_mapped_index_buffer() with draw_set_indexes() which simply takes a pointer and an index size.
* draw: fix primitive restart bug by using the index buffer offsetBrian Paul2012-05-251-3/+6
| | | | | | | | | | | The code which scans the index buffer for restart indexes wasn't adding the index buffer offset so we were always starting at offset=0. The offset is usually zero so it wasn't noticed before. Fixes a failure in the piglit primitive-restart test when testing vertex data + index data in a single VBO. NOTE: This is a candidate for the 8.0 branch.
* util: add GALLIUM_LOG_FILE option for logging output to a fileBrian Paul2012-05-252-6/+25
| | | | Useful for logging different runs to files and diffing, etc.
* tgsi: Initialize Padding struct fields.Vinson Lee2012-05-231-0/+4
| | | | | | | Fix uninitialized scalar variable defects report by Coverity. Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* gallivm: Fixed erroneous optimisation in lp_build_min/max.James Benton2012-05-211-7/+14
| | | | | | | | Previously assumed normalised was 0 to 1, but it can be -1 to 1 if type is signed. Tested with lp_test_conv and lp_test_format, reduced errors. Signed-off-by: José Fonseca <[email protected]>
* gallivm: Compensate for lp_const_offset in lp_build_conv.James Benton2012-05-211-4/+31
| | | | | | | Fixing a /*FIXME*/ to remove errors in integer conversion in lp_build_conv. Tested using lp_test_conv and lp_test_format, reduced errors. Signed-off-by: José Fonseca <[email protected]>
* gallivm: Fixed overflow in lp_build_clamped_float_to_unsigned_norm.James Benton2012-05-211-1/+1
| | | | | | Tested with lp_test_conv and lp_test_format, reduced errors. Signed-off-by: José Fonseca <[email protected]>
* gallium/tgsi/text: Ensure ret is initialized in parse_immediate_data.Vinson Lee2012-05-171-0/+4
| | | | | | | Fix uninitialized scalar variable defect reported by Coverity. Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* Fix fetching integer inputs.José Fonseca2012-05-181-0/+8
|
* llvmpipe: Implement TXQ.Olivier Galibert2012-05-186-6/+204
| | | | | | | | | | Piglits test for fragment shaders pass, vertex shaders fail. The actual failure seems to be in the interpolators, and not the textureSize query. Signed-off-by: Olivier Galibert <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]> Reviewed-by: José Fonseca <[email protected]>
* gallium/auxiliary/pipe-loader: Fix usage of anonymous union.Francisco Jerez2012-05-162-7/+7
| | | | | | | | | Anonymous unions aren't part of the C99 standard. Fixes build on GCC versions older than 4.6. https://bugs.freedesktop.org/show_bug.cgi?id=50001 Reported-by: Michael Lange <[email protected]>
* draw,llvmpipe: Avoid named struct types on LLVM 3.0 and later.José Fonseca2012-05-161-20/+4
| | | | | | | | | | | | Starting with LLVM 3.0, named structures are meant not for debugging, but for recursive data types, previously also known as opaque types. The recursive nature of these types leads to several memory management difficulties. Given that we don't actually need recursive types, avoid them altogether. This is an attempt to address fdo bugs 41791 and 44466. The issue is somewhat random so there's no easy way to check how effective this is.
* gallivm: Add MCRegisterInfo.h to silence benign warnings about missing ↵José Fonseca2012-05-151-0/+3
| | | | | | implementation. Trivial.
* gallivm: Fix lp_build_sgn for normalized/fixed-point integers.José Fonseca2012-05-151-1/+2
| | | | | These types got broken with the recent commit that fixed lp_build_sgn for negative integers.