summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/svga
Commit message (Collapse)AuthorAgeFilesLines
* gallium: add and use PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERSMarek Olšák2011-09-301-2/+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]>
* gallium: remove PIPE_CAP_TEXTURE_MIRROR_REPEATMarek Olšák2011-09-301-3/+0
| | | | | | | | | | All drivers support it (well, except Cell). The boolean option is going away from core Mesa too. This is a follow-up to Ian Romanick's patch "mesa: Remove ARB_texture_mirrored_repeat extension enable flag". Reviewed-by: Brian Paul <[email protected]>
* winsys/svga: Update to vmwgfx kernel module 2.1Thomas Hellstrom2011-09-292-2/+3
| | | | | | | | | Introduces fence objecs and a size limit on query buffers. The possibility to map the fifo from user-space is gone, and replaced by an ioctl that reads the 3D capabilities. Signed-off-by: Thomas Hellstrom <[email protected]> Reviewed-by: Jakob Bornecranz <[email protected]>
* gallium: move border color to be a color unionDave Airlie2011-09-271-4/+4
| | | | | | | | | | EXT_texture_integer also specifies border color should be a color union, the values are used according to the texture sampler format. (update docs) Signed-off-by: Dave Airlie <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* svga: indentation/formatting fixesBrian Paul2011-09-231-16/+16
|
* svga: remove emit_consts() offset parameterBrian Paul2011-09-231-3/+7
| | | | It was always zero.
* svga: s/int/unsigned/ in svga_state_constants.cBrian Paul2011-09-231-3/+7
| | | | Be consistent with other functions in the file. And add some comments.
* svga: s/unit/shader/ and related clean-upsBrian Paul2011-09-231-19/+23
| | | | 'shader' is more intuitive. Also s/int/unsigned/ and add assertions.
* svga: clean up return values and error codesBrian Paul2011-09-2315-97/+92
| | | | | | Previously we were using a hodge podge of int vs. pipe_enum and 0 vs. PIPE_OK. Some functions that always returned PIPE_OK were made void.
* svga: add format translation for DXT/sRGB formatsBrian Paul2011-09-231-2/+8
| | | | | Without this, apps/tests that tried to use a DXT/sRGB format would die on a failed assertion (st_texture.c:80).
* svga: test register W component in emit_kil()Brian Paul2011-09-231-16/+44
| | | | | | Only the XYZ components are checked to be negative by SVGA3DOP_TEXKILL. GL_ARB_fp requires all four components be checked. Emit a second texkill for W if needed.
* svga: fix depth/shadow compare for non-projected texcoordsBrian Paul2011-09-231-16/+24
| | | | | | | We only need to do the divide by Q step for TXP instructions. This fixes the incorrectly rendered soft shadow test in Lightsmark. Along with the previous texture swizzle commit, this also fixes all the piglit glsl-fs-shadow2d-XX.shader_test failures.
* svga: implement texture swizzlingBrian Paul2011-09-234-9/+128
| | | | | | | This exposes the GL_EXT_texture_swizzle extension and allows the various depth texture modes to be implemented properly. This, plus a follow-on texture/shadow change fixes quite a few piglit GLSL shadow sampler test failures.
* svga: check that we don't exceed input/ouput register limitsBrian Paul2011-09-233-2/+13
|
* svga: implement point sprite suppportBrian Paul2011-09-238-4/+119
| | | | | | Emit the SVGA3D_RS_POINTSPRITEENABLE render state. When sprite_coord_mode=PIPE_SPRITE_COORD_LOWER_LEFT emit extra frag shader code to invert the Y coordinate of the incoming texcoord.
* svga: add translation for float formatsBrian Paul2011-09-231-0/+14
|
* svga: check to avoid writing beyond end of constant bufferBrian Paul2011-09-231-1/+23
| | | | See bug 688394
* svga: Cleanup format capability checking.José Fonseca2011-09-238-192/+683
| | | | | | Accurately describe what operations are supported when a format caps entry is not advertised by the host, and which formats are never supported, instead of making ad-hoc and often incorrect assumptions.
* svga: Don't use the new depth formats for surfaces that will never be ↵José Fonseca2011-09-235-17/+23
| | | | | | | sampled from. Mitigates issues with hosts where support for these new depth formats is flaky.
* svga: Share one texcoord between depth and fogJakob Bornecrantz2011-09-233-13/+86
|
* svga: Only emit Z depth work if it is actually readJakob Bornecrantz2011-09-232-15/+21
|
* svga: Fix vPos usageJakob Bornecrantz2011-09-231-1/+7
|
* svga: Wip for passing depth in a texcoordJakob Bornecrantz2011-09-233-13/+86
| | | | TODO: Can we pass this as the same texcoord as fog?
* svga: Add a comment about depth format selection.José Fonseca2011-09-231-1/+10
|
* svga: Consider the new depth formats in svga_texture_from_handle().José Fonseca2011-09-231-1/+2
|
* svgadump: Dump the new depth format names.José Fonseca2011-09-231-0/+9
|
* svga: Expose the new depth formatsJakob Bornecrantz2011-09-236-25/+65
|
* svga: Coalesce multiple shader constants in a single command.José Fonseca2011-09-233-4/+178
| | | | | | HWv8 feature. Tested with GoogleEarth, Mesa demos.
* svgadump: Update for svga3d_reg.h header changes.José Fonseca2011-09-231-33/+60
|
* svga: updated svga3d_reg.h to latest public versionBrian Paul2011-09-231-49/+144
|
* draw: add support for guard-band clippingBrian Paul2011-09-221-1/+1
|
* svga: skip assertion when index_bias < 0Brian Paul2011-09-221-1/+1
| | | | See bug 688383
* svga: fix the test for sRGB texture formatsBrian Paul2011-09-221-1/+2
| | | | | | | | | | The pipe_sampler_view::format field should be prefered over the resource/ texture format. The former is used to override the texture format for sRGB decode enable/disable, etc. Also, use new util_format_is_srgb() helper to catch all sRGB formats. This fixes the piglit tex-srgb test for GL_EXT_texture_sRGB_decode.
* svga: call u_default_redefine_user_buffer() to fix failed assertionBrian Paul2011-09-211-5/+2
| | | | | | | | | | | This fixes a regression from a8cf4b6acf9ee996090cc0bb95fa3558b481108c The problem occured when two successive glDrawArrays calls accessed subsequent elements in user-space arrays. The user-space array from the first call wasn't being grown to accomodate the second draw call's elements. Reviewed-by: Thomas Hellstrom <[email protected]>
* gallium: move clear paths from rgba to a pointer to a color union (v2)Dave Airlie2011-09-182-6/+7
| | | | | | | | | | | | | | | This moves the gallium interface for clears from using a pointer to 4 floats to a pointer to a union of float/unsigned/int values. Notes: 1. the value is opaque. 2. only when the value is used should it be interpretered according to the surface format it is going to be used with. 3. float clears on integer buffers and vice-versa are undefined. v2: fixed up vega and graw, dropped hunks that shouldn't have been in patch. Signed-off-by: Dave Airlie <[email protected]>
* android: add support for vmwgfxChia-I Wu2011-08-271-0/+38
| | | | | | | Quickly tested with VMWare Workstation 7.1.4 on Linux with GeForce GT220. SurfaceFlinger (the display server and compositor) works. 2D apps with RGB visual works. However, due to missing PIPE_FORMAT_R8G8B8A8_UNORM support, those with RGBA visual do not.
* svga: share the source listChia-I Wu2011-08-273-97/+50
| | | | | Factor out C_SOURCES from Makefile to Makefile.sources, and let Makefile and SConscript share it.
* svga: include LLVM in name string in debug buildsBrian Paul2011-08-261-2/+11
|
* svga: add missing switch case for PIPE_SHADER_CAP_INTEGERSBrian Paul2011-08-091-0/+2
|
* Merge branch 'glsl-to-tgsi'Bryan Cain2011-08-041-0/+2
|\ | | | | | | | | | | Conflicts: src/mesa/state_tracker/st_atom_pixeltransfer.c src/mesa/state_tracker/st_program.c
| * gallium: add PIPE_SHADER_CAP_INTEGERSBryan Cain2011-08-011-0/+2
| |
* | svga: Use the correct element size.José Fonseca2011-07-011-1/+1
| | | | | | | | | | | | Instead of always using the first element's size. This fixes flashing floor on CINEBENCH R10.
* | svga: Fix multiple uploads of the same user-buffer.Thomas Hellstrom2011-07-013-30/+90
| | | | | | | | | | | | | | | | If a user-buffer was referenced twice by a draw command, the affected ranges were uploaded separately, with only the last one being referenced by the hardware. Make sure we upload only a single range. Signed-off-by: Thomas Hellstrom <[email protected]>
* | svga: Ignore redefine_user_buffer callsThomas Hellstrom2011-07-011-15/+2
| | | | | | | | | | | | | | | | We currently always treat contents of user-buffers as volatile so we don't need to take any particular action when the state tracker announces that the contents has changed. Signed-off-by: Thomas Hellstrom <[email protected]>
* | svga: fix incorrect user buffer size computation for instance divisor caseBrian Paul2011-07-011-3/+3
| | | | | | | | See preceeding commit for more info.
* | svga: fix incorrect user buffer size computationBrian Paul2011-07-011-1/+3
| | | | | | | | | | | | | | | | | | | | Viewperf uses some unusual vertex arrays where the stride is less than the element size. In this case, the stride was 4 while the element size was 12. The difference of 8 bytes causes us to miss uploading the tail bit of the array data. Typically the stride is >= the element size so there was no problem with other apps.
* | svga: Handle null buffers in svga_buffer_is_user_buffer().José Fonseca2011-07-011-1/+5
| |
* | gallium/svga: Upload only parts of user-buffers that we actually useThomas Hellstrom2011-07-016-71/+208
| | | | | | | | | | | | | | | | | | | | Stream user buffer contents rather than trying to maintain persistent host / hardware copies. Resulting negative array offsets are not allowed by the hardware, (well, at least not according to header files), so adjust index bias to make all array offsets positive. Signed-off-by: Thomas Hellstrom <[email protected]>
* | gallium/svga: Make use of u_upload_flush().Thomas Hellstrom2011-07-012-2/+10
| | | | | | | | | | | | This enables us to pack more data into single upload buffers. Signed-off-by: Thomas Hellstrom <[email protected]>
* | svga: Flush when switching between HW to SW TNL, after updating need_swtnl.José Fonseca2011-07-012-11/+15
|/ | | | | Also, only flush when going from HW TNL to SW TNL, given it is impossible for the buffers resulting from SWTNL to be ever referred by HW TNL path.