summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary
AgeCommit message (Collapse)Author
2009-07-30tgsi: Declare a LOOP register.Michal Krol
The only valid usage for LOOP/ENDLOOP instructions is LOOP[0] as a destination register. The only valid usage for the remaining instructions is LOOP[0].x as an indirect register.
2009-07-30tgsi: Fix number operands for LOOP/ENDLOOP.Michal Krol
2009-07-30tgsi: Document LOOP/ENDLOOP instruction operation.Michal Krol
2009-07-29gallium: fix SSE shadow texture instructionsBrian Paul
When sampling a 2D shadow map we need 3 texcoord components, not 2. The third component (distance from light source) is compared against the texture sample to return the result (visible vs. occluded). Also, enable proper handling of TGSI_TEXTURE_SHADOW targets in Mesa->TGSI translation. There's a possibility for breakage in gallium drivers if they fail to handle the TGSI_TEXTURE_SHADOW1D / TGSI_TEXTURE_SHADOW2D / TGSI_TEXTURE_SHADOWRECT texture targets for TGSI_OPCODE_TEX/TXP instructions, but that should be easy to fix. With these changes, progs/demos/shadowtex.c renders properly again with softpipe.
2009-07-28Merge branch 'mesa_7_5_branch'Brian Paul
Conflicts: Makefile configs/default docs/relnotes.html src/mesa/main/version.h
2009-07-28gallium: minor code/comments clean-upBrian Paul
2009-07-26util: fix typo.José Fonseca
2009-07-23draw: correct address for machine struct in llvm pathKeith Whitwell
This changed after a recent commit.
2009-07-23gallivm: updates for TGSI changesKeith Whitwell
make linux-llvm succeeds, but doesn't seem to be working, at least with llvm 2.5
2009-07-23gallium: remove deprecated TGSI opcodesKeith Whitwell
Various opcodes which can be implemented trivially with other TGSI opcodes, such as matrix multiplication and negation. These were not used by any state tracker or implemented by any of the drivers.
2009-07-23util: Add support for Mac OS.Vinson Lee
2009-07-23gallium: Fix PPC build.Michel Dänzer
2009-07-22gallium: remove multiple aliases for TGSI opcodesKeith Whitwell
This is a source of ongoing confusion. TGSI has multiple names for opcodes where the same semantics originate in multiple shader APIs. For instance, TGSI includes both Mesa/GLSL and DX/SM30 names for opcodes with the same semantics, but aliases those names to the same underlying opcode number. This makes it very difficult to visually inspect two sets of opcodes (eg in state tracker & driver) and check if they implement the same functionality. This patch arbitarily rips out the versions of the opcodes not currently favoured by the mesa state tracker and leaves us with a single name for each distinct operation.
2009-07-22gallium: simplify tgsi_full_immediate structKeith Whitwell
Remove the need to have a pointer in this struct by just including the immediate data inline. Having a pointer in the struct introduces complications like needing to alloc/free the data pointed to, uncertainty about who owns the data, etc. There doesn't seem to be a need for it, and it is unlikely to make much difference plus or minus to performance. Added some asserts as we now will trip up on immediates with more than four elements. There were actually already quite a few such asserts, but the >4 case could be used in the future to specify indexable immediate ranges, such as lookup tables.
2009-07-20tgsi: get texturing working in vertex shader sse2 pathKeith Whitwell
Missing file from previous commit.
2009-07-20tgsi: get texturing working in vertex shader sse2 pathKeith Whitwell
2009-07-20tgsi: fix regression in indexed const lookupsKeith Whitwell
This function was calling get_input_base() and get_output_base() to get the names of a couple of register to use as temps. Those functions no longer return registers, so adjust it to get the registers elsewhere. This change doesn't address the issue that it's a fairly poor way to grab a register name by calling a function with an apparently unrelated meaning.
2009-07-16draw: fix ppc build regressionKeith Whitwell
Found by x.org tinderbox, reported by Chris Ball.
2009-07-16tgsi: simplify and fix sse KIL implementationKeith Whitwell
Use sse_movmskps to extract the correct bits of the comparison result for use in updating the killmask. Simplify some logic around identifying the set of necessary comparisons to make.
2009-07-16rtasm: export sse_movmskpsKeith Whitwell
2009-07-16tgsi: initial texturing support on sse pathKeith Whitwell
Most obvious problem is drawpixels comes out blocky, but this may be an existing issue of KIL on the sse path.
2009-07-16tgsi: make sse function callout mechanism more genericKeith Whitwell
Take a list of arguments rather than hardcoding TEMP_R0.
2009-07-16tgsi: reduce x86 reg usage in tgsi_sse generated programsKeith Whitwell
Pass the tgsi_exec_machine struct in directly and just hold a single pointer to this struct, rather than keeping one for each of its internal members.
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-07-13Merge branch 'mesa_7_5_branch'Brian Paul
2009-07-10tgsi: update some assertionsBrian Paul
2009-07-10tgsi: tgsi: add semantic_names[] string for TGSI_SEMANTIC_FACEBrian Paul
Same story as in the tgsi_dump.c code (see prev commit).
2009-07-10tgsi: add semantic_names[] string for TGSI_SEMANTIC_FACEBrian Paul
Fixes TGSI dump output when front/back-face register is declared. Also, add some assertions to make sure the semantic/interpolate string arrays have as many elements as there are tokens in the p_shader_tokens.h file. That should catch problems like this in the future.
2009-07-10tgis: implement indirect addressing for destination registersBrian Paul
Includes the TGSI interpreter, but not the SSE/PPC/etc code generators.
2009-07-07gallium: Fixes for clobbering stencil values in combined depth/stencil textures.Michel Dänzer
Also fix one case where a 32 bit depth value was incorrectly converted to a combined depth/stencil value.
2009-07-04Merge branch 'mesa_7_5_branch'Jakob Bornecrantz
2009-07-06gallium: rearrange some members to avoid memory holes/paddingZack Rusin
plus it saves us a cacheline in the cso
2009-07-06pipebuffer: handle possible null pointer dereferenceZack Rusin
reported by clang static analyzer
2009-07-06cso: possible null pointer dereferenceZack Rusin
reported by clang static analyzer
2009-07-06util: fix possible null pointer usageZack Rusin
found by the clang static analyzer
2009-07-03Merge branch 'mesa_7_5_branch'Jakob Bornecrantz
Conflicts: src/mesa/main/dlist.c src/mesa/vbo/vbo_save_api.c
2009-07-02Nuke old trace-drm integration.Corbin Simpson
AFAICT nobody will miss it.
2009-06-30Merge branch 'mesa_7_5_branch'Brian Paul
Conflicts: src/mesa/vbo/vbo_exec_draw.c
2009-06-30util: Set PIPE_BUFFER_USAGE_FLUSH_EXPLICIT when calling ↵José Fonseca
buffer_flush_mapped_range.
2009-07-01util: Increase OutputDebugStringA to 4k.José Fonseca
According to http://unixwiz.net/techtips/outputdebugstring.html that's how big the buffer is. The 512bytes limitation is in kernel mode.
2009-06-29gallium/draw: sketch out some missing pointcoord codeBrian Paul
The gl_PointCoord attribute is currently expected to be in the fog coord register's z/w components. This was never totally fleshed out though. This is just some placeholder code.
2009-06-26tgsi: correct handling of return value from util_vsnprintfKeith Whitwell
We were failing to deal with: - vsnprintf returns negative value on error. - vsnprintf returns the number of chars that *would* have been written on truncation.
2009-06-26aux/indices: don't use 'prim' value once it is known to be badKeith Whitwell
Theoretical bugfix only - no known case where this might happen.
2009-06-18util: Add cast.José Fonseca
It is expected to loose precision here.
2009-06-18draw: Replace pointer arithmetic with cast.José Fonseca
Using uintptr_t as intermediate type for pointer -> integer conversions is easier to understand and does not cause any size mismatch warnings. uintptr_t is part of C99, and we already provide a suitable replacement definition for all platforms we care about.
2009-06-18pipebuffer: Use a type consistently for sizes/offsets.José Fonseca
Avoids warnings on 64bit builds. Use regular unsigned since that's what gallium expects, but use a typedef to facilitate possible changes in the future.
2009-06-15rtasm: Use 32bit constant.José Fonseca
As we're only using 32bit bitmasks.