summaryrefslogtreecommitdiffstats
path: root/src/gallium
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* clover: Handle NULL devs argument in clBuildProgramTom Stellard2012-07-011-5/+10
| | | | | If devs is NULL, then the kernel should be compiled for all devices associated with the program.
* clover: Define non-templated copy constructor for clover::ref_ptr.Francisco Jerez2012-07-011-2/+1
| | | | | | | | | The templated copy constructor doesn't prevent the compiler from emitting a default copy constructor, which leads to inconsistent memory handling and was reported to cause segfaults when doing event manipulation. Reported-by: Tom Stellard <[email protected]>
* llvmpipe: fix comment typoBrian Paul2012-06-291-1/+1
|
* clover: Add a function internalizer pass before LTO v2Tom Stellard2012-06-291-10/+49
| | | | | | | | | The function internalizer pass marks non-kernel functions as internal, which enables optimizations like function inlining and global dead-code elimination. v2: - Pass vector arguments by const reference
* radeon/llvm: Enable vec4 loads on R600Tom Stellard2012-06-293-0/+20
|
* radeon/llvm: Enable floating point stores on R600Tom Stellard2012-06-291-0/+6
|
* radeon/llvm: Handle floating point loads on R600Tom Stellard2012-06-292-0/+31
|
* radeon/llvm: Expand UDIV and UREM nodesTom Stellard2012-06-291-4/+3
|
* radeon/llvm: Emit raw ISA for vertex fetch instructionsTom Stellard2012-06-293-81/+139
|
* 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-294-9/+41
| | | | 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]>
* nv50: dynamically allocate space for shader local storageMarcin Slusarz2012-06-286-25/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes 21 piglit tests: spec/glsl-1.10/execution/variable-indexing/ fs-temp-array-mat4-index-col-row-wr vs-temp-array-mat4-index-col-row-wr vs-temp-array-mat4-index-row-wr spec/glsl-1.20/execution/variable-indexing/ fs-temp-array-mat3-index-col-row-rd fs-temp-array-mat3-index-row-rd fs-temp-array-mat4-col-row-wr fs-temp-array-mat4-index-col-row-rd fs-temp-array-mat4-index-col-row-wr fs-temp-array-mat4-index-row-rd fs-temp-array-mat4-index-row-wr vs-temp-array-mat3-index-col-row-rd vs-temp-array-mat3-index-col-row-wr vs-temp-array-mat3-index-row-rd vs-temp-array-mat3-index-row-wr vs-temp-array-mat4-col-row-wr vs-temp-array-mat4-index-col-row-rd vs-temp-array-mat4-index-col-row-wr vs-temp-array-mat4-index-col-wr vs-temp-array-mat4-index-row-rd vs-temp-array-mat4-index-row-wr vs-temp-array-mat4-index-wr ... and prevents a lot of GPU lockups
* nv50: streamline screen_create error handlingMarcin Slusarz2012-06-281-38/+46
| | | | | Remove macro which changes control flow (it's evil). Make all fail paths print (correct) error message.
* nv50/ir: make colorful ir dump output optionalMarcin Slusarz2012-06-281-5/+17
|
* softpipe: fix numFragsEmitted debug codeBrian Paul2012-06-271-0/+7
|
* gallium: minor whitespace, comment changesBrian Paul2012-06-271-3/+1
|
* 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]>
* i915g: Implement sRGB texturesStéphane Marchesin2012-06-265-12/+128
| | | | | | | | Since we don't have them in hw we emulate them in the shader. Although not recommended by the spec it is legit. As a side effect we also get GL 2.1. I think this is as far as we can take the i915.
* svga: return 120 for PIPE_CAP_GLSL_FEATURE_LEVELBrian Paul2012-06-261-1/+3
| | | | Reviewed-by: Marek Olšák <[email protected]>
* llvmpipe: return 120 for PIPE_CAP_GLSL_FEATURE_LEVELBrian Paul2012-06-261-1/+1
| | | | Reviewed-by: Marek Olšák <[email protected]>
* r600g: enable DUAL_EXPORT mode when possible on r6xx/r7xxJerome Glisse2012-06-273-18/+57
| | | | | | | DUAL_EXPORT can be enabled on r6xx/r7xx when all CBs use 16-bit export and there is no depth/stencil export. Signed-off-by: Jerome Glisse <[email protected]>
* r600g: enable DUAL_EXPORT mode when possibleVadim Girlin2012-06-274-6/+55
| | | | | | | | It seems DUAL_EXPORT on evergreen may be enabled when all CBs use 16-bit export mode (EXPORT_4C_16BPC), also there should be at least one CB, and the PS shouldn't export depth/stencil. Signed-off-by: Vadim Girlin <[email protected]>
* r600g: avoid unnecessary shader exports v2Vadim Girlin2012-06-276-28/+41
| | | | | | | | | | | | In some cases TGSI shader has more color outputs than the number of CBs, so it seems we need to limit the number of color exports. This requires different shader variants depending on the nr_cbufs, but on the other hand we are doing less exports, which are very costly. v2: fix various piglit regressions Signed-off-by: Vadim Girlin <[email protected]> Signed-off-by: Jerome Glisse <[email protected]>
* r600g: cache shader variants instead of rebuilding v3Vadim Girlin2012-06-275-94/+217
| | | | | | | | | | | | | | | | | | | Shader variants are stored in the list, the key for lookup is based on the states that require different hw shaders - currently it's rctx->two_side (all gpus) and rctx->nr_cbufs (evergreen/cayman, when writes_all property is set). v2: - use simple list instead of keymap as suggested by Marek on irc - call r600_adjust_gprs from r600_bind_vs_shader for r6xx/r7xx (r600_shader_select isn't used for vertex shaders currently) v3: - fix call to r600_adjust_gprs - do it after updating current shader Improves performance for some apps, e.g. FlightGear - see https://bugs.freedesktop.org/show_bug.cgi?id=50360 Signed-off-by: Vadim Girlin <[email protected]>
* svga: handle missing PIPE_CAP_x queriesBrian Paul2012-06-261-9/+14
| | | | | | And fix incorrect error message for a bad shader type/number. Reviewed-by: Marek Olšák <[email protected]>
* llvmpipe: handle more PIPE_CAP_x queriesBrian Paul2012-06-261-4/+48
| | | | | | | | | As with the previous commit for softpipe. v2: remove 'default' case to get compile-time warning Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: José Fonseca <[email protected]>
* softpipe: handle more PIPE_CAP_x queriesBrian Paul2012-06-261-3/+31
| | | | | | | | | | These all return zero. Add a debug_printf() to catch the default case so we don't accidently mishandle something important in the future. v2: remove 'default' case to get compile-time warning Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: José Fonseca <[email protected]>
* svga: return 1 for PIPE_CAP_MIXED_COLORBUFFER_FORMATSBrian Paul2012-06-261-1/+3
| | | | | | | | | | | This is actually required for GL_ARB_framebuffer_object, but the state tracker doesn't currently check it. Direct3D 9 allows mixed format color buffers with some restrictions. Setting this allows Unigine Heaven 2.5 and 3.0 to run. Tested both on GL and D3D hosts. Reviewed-by: Jose Fonseca <[email protected]> Reviewed-by: Jakob Bornecrantz <[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]>
* st/wgl: Add a few more comments.José Fonseca2012-06-262-6/+38
|
* r600g: don't disable streamout if it hasn't been startedMarek Olšák2012-06-261-1/+1
|
* 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
* st/wgl: 80-column wrappingBrian Paul2012-06-252-7/+12
|
* r600g: inline r600_blit_push_depth and use resource_copy_regionMarek Olšák2012-06-253-18/+11
| | | | | We are going to have a separate resource for depth texturing and transfers and this is just a transfer thing.
* r600g: split flushed depth texture creation and flushingMarek Olšák2012-06-255-16/+34
|
* llvmpipe: fix the LP_NO_RAST debug optionBrian Paul2012-06-254-24/+22
| | | | | | | | It was only no-oping the clear() function, not actual triangle rasterization. Move the no_rast field from lp_context down into lp_rasterizer so it's accessible where it's needed. Reviewed-by: Jose Fonseca <[email protected]>
* svga: init pointer to NULL to silence MSVC warningBrian Paul2012-06-221-1/+1
|
* clover: Add --with-clang-libdir option and verify CLANG_RESOURCE_DIRTom Stellard2012-06-221-1/+1
| | | | | | | | | | | | | | $CLANG_RESOURCE_DIR is the directory that contains all resources needed by clang to compile programs. When clover uses clang to compile kernels it needs to specify a resource dir, so that clang can find its internal headers (e.g. stddef.h). clang defines $CLANG_RESOURCE_DIR as $CLANG_LIBDIR/clang/$CLANG_VERSION This patch adds the --with-clang-libdir option in order to accommodate clang intalls to non-standard locations, and it also adds a check to the configure script to verify that $CLANG_RESOURCE_DIR/include contains the necessary header files.