summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/tgsi/tgsi_exec.h
AgeCommit message (Collapse)Author
2011-03-02tgsi: defer allocation of huge inputs/outputs until we have a gsZack Rusin
2011-01-24gallium: implement modern sampling schemeZack Rusin
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]
2010-12-08tgsi: add support for system values to TGSI interpreterBrian Paul
2010-11-22gallium: add PIPE_SHADER_CAP_SUBROUTINESMarek Olšák
This fixes piglit/glsl-vs-main-return and glsl-fs-main-return for the drivers which don't support RET (i915g, r300g, r600g, svga). ir_to_mesa does not currently generate subroutines, but it's a matter of time till it's added. It would then break all the drivers which don't implement them, so this CAP makes sense. Signed-off-by: Marek Olšák <maraeo@gmail.com>
2010-11-12tgsi: fill out CAPs for indirect addressingMarek Olšák
2010-11-04tgsi/exec: Get rid of obsolete condition codes.Michal Krol
2010-09-14gallium: introduce get_shader_param (ALL DRIVERS CHANGED) (v3)Luca Barbieri
Changes in v3: - Also change trace, which I forgot about Changes in v2: - No longer adds tessellation shaders Currently each shader cap has FS and VS versions. However, we want a version of them for geometry, tessellation control, and tessellation evaluation shaders, and want to be able to easily query a given cap type for a given shader stage. Since having 5 duplicates of each shader cap is unmanageable, add a new get_shader_param function that takes both a shader cap from a new enum and a shader stage. Drivers with non-unified shaders will first switch on the shader and, within each case, switch on the cap. Drivers with unified shaders instead first check whether the shader is supported, and then switch on the cap. MAX_CONST_BUFFERS is now per-stage. The geometry shader cap is removed in favor of checking whether the limit of geometry shader instructions is greater than 0, which is also used for tessellation shaders. WARNING: all drivers changed and compiled but only nvfx tested
2010-07-29gallium: implement bounds checking for constant buffersBrian Paul
Plumb the constant buffer sizes down into the tgsi interpreter where we can do bounds checking. Optional debug code warns upon out-of-bounds reading. Plus add a few other assertions in the TGSI interpreter.
2010-06-18gallium: add a temporary array register fileZack Rusin
like normal temporaries, but allows to define a number of distinct arrays, all of which make it explicit that they contain /indexable/ registers. as a side-effect we're adding support for multi-dimensional destination registers. The whole thing looks like this: DCL TEMPX[0][0..128] # 0 array with 128 registers ADD TEMPX[0][0], IN[0], IMM[0] ADD TEMPX[0][1], IN[0], IMM[0] ABS OUT[0], TEMPX[0][TEMP[0]]
2010-06-18gallium: add a new register file - immediate arrayZack Rusin
allows one to specify a safe (bound checked) array filled with immediates. it works just like a const array and declares much like our current immediates.
2010-05-12softpipe: Adverstise (tgsi_exec's) shader limits.José Fonseca
2010-05-06gallium/tgsi: remove unused tgsi_exec_labels codeBrian Paul
2010-05-03gallium: Remove loop register file.José Fonseca
It was only used for D3D's REP/END/BGNFOR/ENDFOR. D3D's aL register is just like another address register now.
2010-01-28gallium: Rename PIPE_MAX_CONSTANT to PIPE_MAX_CONSTANT_BUFFERS.Michal Krol
2010-01-28gallium: Implement 2D constant buffers for fragment shader in softpipe.Michal Krol
2010-01-07gallium: Fix texture sampling with explicit LOD in softpipe.Michal Krol
2010-01-07gallium: Pass per-element (not per-quad) LOD bias values down to texture ↵Michal Krol
sampler.
2010-01-05gallium: Add SWITCH, CASE, DEFAULT and ENDSWITCH opcodes to TGSI.Michal Krol
Provide reference implementation of them in tgsi_exec. Note that BREAK opcode is overloaded and can be used to break out of either a loop or a switch-case statement.
2009-12-25gallium: add geometry shader support to galliumZack Rusin
2009-11-24tgsi: Implement predicated instructions in exec.Michal Krol
2009-11-23tgsi: Fix POSITION and FACE fragment shader inputs.Michal Krol
2009-11-23tgsi: Bring BGNFOR/ENDFOR implementation up to spec.Michal Krol
2009-11-03tgsi: Up tgsi_exec's control flow nesting to 32.Michal Krol
2009-11-02tgsi: Update for gallium interface changes.Michal Krol
2009-09-10tgsi: use new tgsi_call_record to handle execution mask stacksBrian Paul
This fixes some issues when "return"ing from nested loops/conditionals.
2009-09-03aux/tgsi: pull back ureg work from 0.1 branchKeith Whitwell
Manual merge of ureg changes on the branch. Too much unrelated stuff for a proper merge.
2009-08-20tgsi: handle SOA dependencies for MOV/SWZBrian Paul
SOA dependencies can happen when a register is used both as a source and destination and the source is swizzled. For example: MOV T, T.yxwz; would expand into: MOV t0, t1; MOV t1, t0; MOV t2, t3; MOV t3, t2; The second instruction will produce the wrong result since we wrote to t0 in the first instruction. We need to use an intermediate temporary to fix this. This will take more work to fix for all TGSI instructions. This seems to happen with MOV instructions more than anything else so fix that case now and warn on others. Fixes piglit glsl-vs-loop test (when not using SSE). See bug 23317.
2009-07-16tgsi: no need to separately malloc input and output arraysKeith Whitwell
Can now guarantee alignment in the initial allocation of the tgsi exec machine.
2009-07-16gallium: reduce recursive include of tgsi_exec.hKeith Whitwell
A lot of draw code no longer needs to see this header.
2009-07-16tgsi: make function call code in tgsi_sse.c less opaqueKeith Whitwell
Explictly pass src and dst arguments (previously dst argument was also being used as a src). Separate argument handling from the rest of the function call emit.
2009-07-16gallium: proper constructor and destructor for tgsi_exec_machineKeith Whitwell
Centralize the creation, initialization and destruction of this struct. Use align_malloc instead of home-brew alternatives.
2009-06-04tgsi: increase MAX_LABELS to 4096Brian Paul
2009-03-22tgsi: minor commentsBrian Paul
2008-11-23softpipe: remove old/unneeded dependencies between TGSI exec and softpipeBrian
Use tgsi_sampler struct as a base class. Softpipe subclasses it and adds the fields it needs.
2008-11-12tgsi: More comments on source register indirect and 2D indexing.Michal Krol
2008-11-05gallium: added tgsi_set_exec_mask()Brian Paul
2008-08-18tgsi: Add condition code (CC) register.Michal Krol
2008-07-28Merge tgsi/exec and tgsi/util directories.José Fonseca