summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/svga
Commit message (Collapse)AuthorAgeFilesLines
* 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 <thellstrom@vmware.com>
* 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 <airlied@redhat.com>
* 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 <thellstrom@vmware.com>
* | 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 <thellstrom@vmware.com>
* | 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 <thellstrom@vmware.com>
* | 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 <thellstrom@vmware.com>
* | 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.
* svga: fix typos, update commentsBrian Paul2011-06-081-7/+5
|
* svga: emit user-defined clip plane stateBrian Paul2011-04-273-11/+26
| | | | User-defined clip planes were a swtnl fallback before.
* svga: fix warning: ‘uc.ui’ may be used uninitialized in this functionMarek Olšák2011-04-271-1/+1
| | | | | This is safe because it's initialized if buffers & PIPE_CLEAR_COLOR and probably doesn't have any effect otherwise.
* gallium: add fallback for copying buffers to all driversMarek Olšák2011-04-211-0/+9
| | | | | | Just to keep drivers working. Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
* svga: defined QSZ in terms of SVGA3D_MAX_DRAW_PRIMITIVE_RANGESBrian Paul2011-04-131-1/+3
|
* svga: define SVGA3D_MAX_DRAW_PRIMITIVE_RANGES and update commentsBrian Paul2011-04-131-4/+12
|
* svga: Rebind framebuffer and tss bindings strictly when necessary.José Fonseca2011-04-126-26/+45
| | | | | | | | | | The earlier change to ensure rendertargets and textures are always rebound at every command buffer start had the downside of making successive flushes no longer no-ops, as a command buffer with merely the rebinding commands were being unnecessarily sent to the vGPU. This change only re-emits the bindings when necessary, by keeping track of the need to rebind outside of the dirty state update mechanism.
* svga: another tweak to adjust_x term (use -0.5)Brian Paul2011-04-071-1/+1
|
* gallium: set PIPE_CAP_MIXED_COLORBUFFER_FORMATS in some driversMarek Olšák2011-04-011-0/+2
|