summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/tgsi
Commit message (Collapse)AuthorAgeFilesLines
* tgsi: consolidate TGSI string arrays in new tgsi_strings.hBrian Paul2012-01-055-232/+253
| | | | | | | | | | There was some duplication between the tgsi_dump.c and tgsi_text.c files. Also use some static assertions to help catch errors when adding new TGSI values. v2: put strings in tgsi_strings.c file instead of the .h file. Reviewed-by: Dave Airlie <[email protected]>
* tgsi/softpipe: disable FAST_MATHDave Airlie2012-01-031-1/+1
| | | | | | | In the interest of softpipe preferring correctness over speed and passing more piglit tests, set this to off by default. For speed you really want llvmpipe. Signed-off-by: Dave Airlie <[email protected]>
* softpipe: reorder LIT to fix fp-lit-src-equals-dstDave Airlie2011-12-311-8/+8
| | | | | | | This reorders the LIT operation like the r600 one to fix the fp-lit-src-equals-dst piglit test. Signed-off-by: Dave Airlie <[email protected]>
* softpipe: fix shadow1d tests.Dave Airlie2011-12-191-1/+13
| | | | | | | This fixes the piglit glsl-1.10 shadow1D related tests. Signed-off-by: Dave Airlie <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* softpipe: fix shadow 2d texture array samplingDave Airlie2011-12-191-1/+10
| | | | | | | | | The 4th texcoord is used in this case for the comparison. This fixes piglit glsl-fs-shadow2DArray* on softpipe. Signed-off-by: Dave Airlie <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* softpipe: fix texture sampling from 1D texture arrayDave Airlie2011-12-191-0/+13
| | | | | | | | | This is the first part of a fix to piglit glsl-fs-shadow1DArray also fix the passing of unused r[2] in the normal 1D case. Signed-off-by: Dave Airlie <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* gallium: utility helper functions for stream outputMarek Olšák2011-12-152-6/+21
|
* gallium: interface changes necessary to implement transform feedback (v5)Marek Olšák2011-12-151-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Namely: - EXT_transform_feedback - ARB_transform_feedback2 - ARB_transform_feedback_instanced The old interface was not useful for OpenGL and had to be reworked. This interface was originally designed for OpenGL, but additional changes have been made in order to make st/d3d1x support easier. The most notable change is the stream-out info must be linked with a vertex or geometry shader and cannot be set independently. This is due to limitations of existing hardware (special shader instructions must be used to write into stream-out buffers), and it's also how OpenGL works (stream outputs must be specified prior to linking shaders). Other than that, each stream output buffer has a "view" into it that internally maintains the number of bytes which have been written into it. (one buffer can be bound in several different transform feedback objects in OpenGL, so we must be able to have several views around) The set_stream_output_targets function contains a parameter saying whether new data should be appended or not. Also, the view can optionally be used to provide the vertex count for draw_vbo. Note that the count is supposed to be stored in device memory and the CPU never gets to know its value. OpenGL way | Gallium way ------------------------------------ BeginTF = set_so_targets(append_bitmask = 0) PauseTF = set_so_targets(num_targets = 0) ResumeTF = set_so_targets(append_bitmask = ~0) EndTF = set_so_targets(num_targets = 0) DrawTF = use pipe_draw_info::count_from_stream_output v2: * removed the reset_stream_output_targets function * added a parameter append_bitmask to set_stream_output_targets, each bit specifies whether new data should be appended to each buffer or not. v3: * added PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME for ARB_tfb2, note that the draw-auto subset is always required (for d3d10), only the pause/resume functionality is limited if the CAP is not advertised v4: * update gallium/docs v5: * compactified struct pipe_stream_output_info, updated dump/trace
* gallium: implement ARB_conservative_depthMarek Olšák2011-12-103-0/+22
| | | | This adds a new TGSI property to represent the GLSL layout qualifier in TGSI.
* gallium: add PIPE_SHADER_CAP_OUTPUT_READVadim Girlin2011-11-211-1/+0
| | | | | | | It's intended to indicate whether the driver/hardware supports reading of the values written into shader outputs. Signed-off-by: Vadim Girlin <[email protected]>
* gallium: add TGSI_SEMANTIC_VERTEXIDChristoph Bumiller2011-11-144-0/+6
|
* Remove tgsi_sse2.José Fonseca2011-11-082-3186/+0
| | | | tgsi_exec is simple. llvm is fast. tgsi_sse2 ends up being neither.
* tgsi: Fix memory leak in out-of-memory path.Vinson Lee2011-10-251-7/+10
| | | | | | Fixes Coverity resource leak defect. Reviewed-by: Brian Paul <[email protected]>
* gallium: add and use PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERSMarek Olšák2011-09-301-0/+2
| | | | | | | | | This removes: - PIPE_CAP_MAX_TEXTURE_IMAGE_UNITS - PIPE_CAP_MAX_VERTEX_TEXTURE_UNITS in favor of the that new per-shader cap. Reviewed-by: Brian Paul <[email protected]>
* tgsi: Check in scan for fs position and depth readsJakob Bornecrantz2011-09-222-0/+17
|
* tgsi: fix typo in commit 324ac982d8e7Emil Velikov2011-09-101-1/+1
| | | | Reviewed-by: Bryan Cain <[email protected]>
* gallium: add TGSI opcodes UARL and UCMPBryan Cain2011-09-102-0/+33
| | | | | | | They are needed by glsl_to_tgsi for an efficient implementation using native integers. Reviewed-by: Brian Paul <[email protected]>
* gallium: add shadow 1D and 2D array samplers to TGSIMarek Olšák2011-09-105-7/+54
| | | | And filling in all the switch statements in auxiliary. Mostly untested.
* tgsi: add support for texture offsets to the TGSI IR. (v2)Dave Airlie2011-09-028-9/+132
| | | | | | | | | | | | | This adds tokens for texture offsets, to store 4 * swizzled vec 3 for use in TXF and other opcodes. It also contains TGSI exec changes for softpipe to use this code, along with GLSL->TGSI support for TXF. v2: add some more comments, add back padding I removed. Signed-off-by: Dave Airlie <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* tgsi: add TXF support.Dave Airlie2011-08-252-1/+59
| | | | | | | | | | | This is a straight texel fetch with no filtering or clamping. It uses integers to specify the i/j/k (from EXT_gpu_shader4). To enable this I had to add another hook into the tgsi sampler so that we could easily bypass all the filtering sample does. Signed-off-by: Dave Airlie <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* tgsi: add TXQ support. (v2)Dave Airlie2011-08-252-1/+31
| | | | | | | | | | this adds another callback in the sampler struct containing get_dims entry point. This is used to query the driver for the texture resource dimensions for the resource bound to the current sampler. v2: remove unusued variable, fix indent Signed-off-by: Dave Airlie <[email protected]>
* Merge branch 'glsl-to-tgsi'Bryan Cain2011-08-042-1/+14
|\ | | | | | | | | | | Conflicts: src/mesa/state_tracker/st_atom_pixeltransfer.c src/mesa/state_tracker/st_program.c
| * tgsi: add support for TGSI_OPCODE_MOD in tgsi_execBryan Cain2011-08-011-1/+12
| |
| * gallium: add PIPE_SHADER_CAP_INTEGERSBryan Cain2011-08-011-0/+2
| |
* | Merge branch 'gallium-polygon-stipple'Brian Paul2011-07-212-10/+31
|\ \
| * | tgsi: add info fields for fragcoord origin, center, etcBrian Paul2011-07-212-10/+31
| |/
* / tgsi: add some debug/print code in exec_tex(), disabledBrian Paul2011-07-061-0/+11
|/
* tgsi: s/varient/variant/Brian Paul2011-06-071-2/+2
|
* tgsi/ureg: bump the limit of immediatesMarek Olšák2011-05-301-1/+1
| | | | | | | | | | Lowered indirect addressing can create lots of immediates. Fixes piglit/glsl-fs-uniform-array-7 on r300g. NOTE: This is a candidate for the 7.10 branch. Reviewed-by: Brian Paul <[email protected]>
* tgsi: remove set-but-unused variablesMarek Olšák2011-05-011-4/+0
|
* tgsi: Fix parsing of properties with digits in the nameJakob Bornecrantz2011-03-131-1/+1
|
* tgsi: Disable SSE2 code generation.José Fonseca2011-03-041-3/+20
| | | | | | It's broken now that tgsi_exec_machine::Inputs/Ouputs are pointers. Temporary if anybody still cares about tgsi_sse2.c. Permanent otherwise.
* tgsi: Update assert.José Fonseca2011-03-031-1/+1
| | | | | Elements(mach->Inputs) is wrong now that mach->Inputs is dynamically allocated.
* tgsi: defer allocation of huge inputs/outputs until we have a gsZack Rusin2011-03-022-6/+45
|
* gallium/tgsi: shuffle ureg_src structure to work around gcc4.6.0 issueJerome Glisse2011-02-251-14/+14
| | | | | | | | | | | | There is an issue with gcc 4.6.0 that leads to segfault/assert with mesa due to ureg_src size, reshuffling the structure member to better better alignment work around the issue. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47893 7.9 + 7.10 candidate Signed-off-by: Jerome Glisse <[email protected]>
* tgsi: add cases for array texturesBrian Paul2011-01-261-0/+2
| | | | Fixes http://bugs.freedesktop.org/show_bug.cgi?id=33555
* tgsi: add support for 1D/2D texture arraysBrian Paul2011-01-253-2/+39
|
* gallium: implement modern sampling schemeZack Rusin2011-01-2412-33/+607
| | | | | | | | | | | largely a merge of the previously discussed origin/gallium-resource-sampling but updated. the idea is to allow arbitrary binding of resources, the way opencl, new gl versions and dx10+ require, i.e. DCL RES[0], 2D, FLOAT LOAD DST[0], SRC[0], RES[0] SAMPLE DST[0], SRC[0], RES[0], SAMP[0]
* Merge branch 'draw-instanced'Brian Paul2011-01-156-8/+99
|\ | | | | | | | | | | | | | | Conflicts: src/gallium/auxiliary/draw/draw_llvm.c src/gallium/drivers/llvmpipe/lp_state_fs.c src/glsl/ir_set_program_inouts.cpp src/mesa/tnl/t_vb_program.c
| * tgsi/ppc: add case for system values and assertBrian Paul2010-12-081-1/+3
| |
| * tgsi/sse: add support for system valuesBrian Paul2010-12-081-3/+51
| |
| * tgsi: new tgsi_shader_info fields for system valuesBrian Paul2010-12-082-1/+22
| |
| * tgsi: add support for system values to TGSI interpreterBrian Paul2010-12-082-3/+23
| |
* | tgsi: remove redundant name tables from tgsi_text, use those from tgsi_dumpMarek Olšák2011-01-063-56/+33
| | | | | | | | | | I also specified the array sizes in the header so that one can use the Elements macro on it.
* | tgsi: Clean up header file inclusion in tgsi_text.h.Vinson Lee2010-12-301-2/+4
| |
* | tgsi: Clean up header file inclusion in tgsi_sanity.h.Vinson Lee2010-12-301-2/+4
| |
* | tgsi_dump: fix assert due to missing property name.Dave Airlie2010-12-281-1/+2
| |
* | tgsi_text: just parse as an integer (value is a boolean).Dave Airlie2010-12-241-1/+0
| | | | | | | | | | | | fixes warning reported by vlee on irc. Signed-off-by: Dave Airlie <[email protected]>
* | gallium: add fragment shader property for color writes to all buffers. (v2)Dave Airlie2010-12-243-2/+23
| | | | | | | | | | | | | | | | | | | | For GL fragColor semantics we need to tell the pipe drivers that the fragment shader color result is to be replicated to all bound color buffers, this adds the basic TGSI + documentation. v2: fix missing comma pointed out by Tilman on mesa-dev. Signed-off-by: Dave Airlie <[email protected]>
* | tgsi: fix rbug compile errorMarek Olšák2010-12-111-1/+2
|/ | | | | | | ../mesa/src/gallium/auxiliary/tgsi/tgsi_parse.h:139: error: dereferencing pointer ‘tokens.25’ does break strict-aliasing rules Signed-off-by: Marek Olšák <[email protected]>