summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers
Commit message (Collapse)AuthorAgeFilesLines
* gallium: remove pipe_surface::usageMarek Olšák2012-12-1218-23/+0
| | | | | | Not really used by anybody now. Reviewed-by: Brian Paul <brianp@vmware.com>
* svga: stop using pipe_surface::usageMarek Olšák2012-12-121-15/+7
| | | | | | | | | There are only 2 possible usages: render target and depth stencil. Both can be derived from the surface format, so the flag is redundant. And it's going away... Reviewed-by: Brian Paul <brianp@vmware.com>
* softpipe: implement seamless cubemap support. (v1.1)Dave Airlie2012-12-122-9/+139
| | | | | | | | | | | | | | | | | This adds seamless sampling for cubemap boundaries if requested. The corner case averaging is messy but seems like it should be spec compliant. The face direction stuff is also a bit messy, I've no idea if that could or should be simpler, or even if all my directions are fully correct! v1.1: update comments, drop unneeded seamless calls for nearest, fix if statement layout. Reviewed-by: Roland Scheidegger <sroland@vmware.com> Reviewed-by: Brian Paul <brianp@vmware.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* gallium: fix cap warnings for tbo cap.Dave Airlie2012-12-123-0/+3
| | | | Signed-off-by: Dave Airlie <airlied@redhat.com>
* llvmpipe: don't use user constant buffersBrian Paul2012-12-111-1/+2
| | | | | | | This fixes some use-after-free issues. I haven't measured any real performance difference with a handful of Mesa demos. Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
* llvmpipe: support pipe_resource-based constant buffersBrian Paul2012-12-117-34/+48
| | | | | | | | | | | | | | | | Before this we only supported user-based constant buffers. First, we basically plumb pipe_constant_buffer objects through llvmpipe rather than pipe_resource objects. Second, update llvmpipe_set_constant_buffer() and try_update_scene_state() so they understand both resource- and user-based constant buffers. The problem with user constant buffers is the potential for use-after-free, as seen in some WebGL tests. The next patch will flip the switch for resource-based const buffers. Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
* softpipe: Use os_time_get_nano() everywhere.José Fonseca2012-12-112-5/+5
|
* nvc0: comment unused nvc0_validate_zcull functionFabio Pedretti2012-12-101-0/+2
| | | | Signed-off-by: Brian Paul <brianp@vmware.com>
* nv50: remove unused OpClassStr arrayFabio Pedretti2012-12-101-20/+0
| | | | Signed-off-by: Brian Paul <brianp@vmware.com>
* nvc0/ir: allow neg,abs modifiers on OP_SET with integer resultChristoph Bumiller2012-12-081-0/+4
|
* nvc0/ir/emit: fix check for flags register use in logic opsChristoph Bumiller2012-12-081-3/+3
|
* llvmpipe: fix missing tbo cap warning.Dave Airlie2012-12-081-0/+1
| | | | Signed-off-by: Dave Airlie <airlied@redhat.com>
* softpipe: enable GLSL 1.40Dave Airlie2012-12-081-1/+1
| | | | | | This enables GLSL 1.40 advertising by softpipe. Signed-off-by: Dave Airlie <airlied@redhat.com>
* softpipe: add texture buffer object supportDave Airlie2012-12-082-1/+9
| | | | | | This adds TBO support to softpipe. Signed-off-by: Dave Airlie <airlied@redhat.com>
* nv50,nvc0: fix shader evictionChristoph Bumiller2012-12-072-2/+19
|
* nv50,nvc0: add support for cube map arraysChristoph Bumiller2012-12-0716-37/+88
| | | | NOTE: nv50 support not enabled, someone with nva3/8 please fix.
* r300: Don't disable destination read if the src blend factor needs itStefan Dösinger2012-12-071-2/+10
| | | | | | | | | | | The read can remain disabled if the src alpha factor needs it because the result would still be zero. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=57984 NOTE: This is a candidate for stable release branches. Signed-off-by: Marek Olšák <maraeo@gmail.com>
* gallivm,llvmpipe,draw: Support multiple constant buffers.José Fonseca2012-12-078-46/+66
| | | | | | | | | | | Support 16 (defined in LP_MAX_TGSI_CONST_BUFFERS) as opposed to 32 (as defined by PIPE_MAX_CONSTANT_BUFFERS) because that would make the jit context become unnecessarily large. v2: Bump limit from 4 to 16 to cover ARB_uniform_buffer_object needs, per Dave Airlie. Reviewed-by: Brian Paul <brianp@vmware.com>
* gallium/u_blitter: fix conflict with u_memory.hMarek Olšák2012-12-072-0/+2
| | | | Reviewed-by: Brian Paul <brianp@vmware.com>
* r600g: transfers of MSAA color textures should do the resolveMarek Olšák2012-12-071-5/+32
| | | | | | so that ReadPixels and various fallbacks work. Reviewed-by: Brian Paul <brianp@vmware.com>
* trace: dump pipe_resource::nr_samplesMarek Olšák2012-12-071-0/+1
| | | | Reviewed-by: Brian Paul <brianp@vmware.com>
* llvmpipe: fix regression in gears speed.Dave Airlie2012-12-071-2/+4
| | | | | | | This fixes the gears regression since transform feedback. Reported-by: Brian Paul <brianp@vmware.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* radeonsi: Fix cube texture coordinates.Michel Dänzer2012-12-061-0/+7
| | | | | | | 8 more piglits. Reviewed-by: Tom Stellard <thomas.stellard@amd.com> Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
* radeon/llvm: Export prepare_cube_coords helper to driver.Michel Dänzer2012-12-062-8/+13
| | | | | | | To be used by radeonsi. Reviewed-by: Tom Stellard <thomas.stellard@amd.com> Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
* llvmpipe: Fix statement before declaration.José Fonseca2012-12-061-1/+2
|
* llvmpipe: remove unused variableBrian Paul2012-12-061-1/+0
|
* llvmpipe: EXT_transform_feedback support (v1.1)Dave Airlie2012-12-0615-101/+125
| | | | | | | | | | | | I'd written most of this ages ago, but never finished it off. This passes 115/130 piglit tests so far. I'll look into the others as time permits. v1.1: fix calloc return check as suggested by Jose. Reviewed-by: Jose Fonseca <jfonseca@vmware.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* r600g: use default action for min/max opcode in tgsi to llvmVincent Lejeune2012-12-051-4/+0
| | | | Reveiwed-by: Tom Stellard <thomas.stellard at amd.com>
* r600g: use default action for fdiv/rcp opcodeVincent Lejeune2012-12-051-6/+1
| | | | Reveiwed-by: Tom Stellard <thomas.stellard at amd.com>
* r600g: Use default mul/mad function for tgsi-to-llvmVincent Lejeune2012-12-051-8/+4
| | | | Reveiwed-by: Tom Stellard <thomas.stellard at amd.com>
* llvmpipe: Fix alignment.José Fonseca2012-12-041-0/+5
| | | | | | | | | My understanding and actual implementation of how the pixels are being fetch differed. This fixes bug 57863. Trivial.
* r300g: Give CLIP_DISABLE another tryStefan Dösinger2012-12-042-2/+3
| | | | Signed-off-by: Marek Olšák <maraeo@gmail.com>
* llvmpipe: Implement PIPE_QUERY_TIMESTAMP and PIPE_QUERY_TIME_ELAPSED.James Benton2012-12-0311-43/+125
| | | | | | | | | | | | | | | | | | This required an update for the query storage in llvmpipe, there can now be an active query per query type, so an occlusion query can run at the same time as a time elapsed query. Based on PIPE_QUERY_TIME_ELAPSED patch from Dave Airlie. v2: fix up piglits for timers (also from Dave Airlie) a) if we don't render anything the result is 0, so just return the current time b) add missing screen get_timestamp callback. Signed-off-by: Dave Airlie <airlied@redhat.com> Signed-off-by: José Fonseca <jfonseca@vmware.com>
* llvmpipe: Refactor convert_to/from_blend_type to convert in place.José Fonseca2012-12-031-12/+8
| | | | | | | This fixes the "Source and destination overlap in memcpy" valgrind warnings. Reviewed-by: Roland Scheidegger <sroland@vmware.com>
* llvmpipe: Improve color buffer loads/stores alignment.José Fonseca2012-12-031-10/+19
| | | | | | | | Tell LLVM the exact alignment we can guarantee, based on the fs block dimensions, pixel format, and the alignment of the resource base pointer and stride. Reviewed-by: Roland Scheidegger <sroland@vmware.com>
* llvmpipe: Recompute the fs shader key when framebuffer varies.José Fonseca2012-12-031-0/+1
| | | | | | | | | | | The fs shader now depends on the color buffer formats. The shader key was extended to accommodate this, but llvmpipe_update_derived needs to be updated to check the framebuffer dirty flag. This fixes bug 57674. Reviewed-by: Roland Scheidegger <sroland@vmware.com> Reviewed-by: Dave Airlie <airlied@redhat.com>
* r300g: increment num_z_clears only if we have Hyper-ZMarek Olšák2012-12-021-2/+1
|
* r300g: add blacklist for apps that shouldn't steal hyperz accessMarek Olšák2012-12-021-0/+28
|
* r300g: enable Hyper-Z by default on r500Marek Olšák2012-12-021-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | I fixed the only known bugs on r500 with 0222b2bd4107b9e5cabfbc06c1a6ca3eae. Now there are no piglit regressions with Hyper-Z and all apps I tested seem to work. To summarize how it works: - Only one process can use it at a time. This is a hardware limitation. - The first process to clear a zbuffer gets the exclusive access to use Hyper-Z. - Compositors don't use any zbuffer, so they won't steal it, but some web browsers do, so make sure there's no web browser running if you want your game to use Hyper-Z. - There's no need to restart an app which couldn't get the access to Hyper-Z. Just quit the app which took it, the driver can turn it on for the other app in the middle of rendering. - If an app gets the access to Hyper-Z, it prints "radeon: Acquired Hyper-Z" to stdout. r300-r400: Hyper-Z will be enabled by default on r300-r400 once sufficient testing is done with piglit and Lightsmark at least. Be sure to set the env var RADEON_HYPERZ and run piglit with parameters: -c 0
* r300g: clear the ZB cache before clearing ZMASK or HIZMarek Olšák2012-12-022-2/+8
| | | | | | | This fixes wrong rendering in Lightsmark and the piglit/depthstencil-render-miplevels. I think I fixed Hyper-Z. So far every app seems to work like a charm.
* Revert "r300g: fix occlusion queries when depth test is disabled or zbuffer ↵Marek Olšák2012-12-022-27/+6
| | | | | | is missing" It broke Hyper-Z terribly.
* r300g: refuse to create too large texturesMarek Olšák2012-12-011-0/+15
|
* r300g: fix memory leaks in texture_create error pathsMarek Olšák2012-12-011-9/+15
|
* r300g: fix revoking hyperz accessMarek Olšák2012-12-011-20/+22
| | | | | The bug was uncovered by 67c8e96f5ace67f9c17556934ee9532877d3a00. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=57763
* r300g: handle map flag DISCARD_WHOLE_RESOURCEMarek Olšák2012-12-013-4/+36
| | | | | This should improve performance in apps which trigger this codepath. (e.g. Wine does)
* svga: remove pointless assert on unsigned >= 0Dave Airlie2012-12-011-1/+0
| | | | | | | | | | all unsigneds are >= 0 :-) There may be an argument for leaving this in, in case someone changes min_lod to an integer, so feel free to apply or drop. Reviewed-by: Brian Paul <brianp@vmware.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* r300g: fix comparison of hyperz flush time.Dave Airlie2012-12-011-1/+1
| | | | | | | | | | I haven't confirmed this is doing the correct thing, but at least this might make someone review it! Reported by internal RH coverity scan. Signed-off-by: Dave Airlie <airlied@redhat.com> Reviewed-by: Marek Olšák <maraeo@gmail.com>
* llvmpipe: Remove remnants of lp_tile_soa from Makefile.José Fonseca2012-11-302-4/+0
| | | | | | Completely forgot about updating Makefile when removing it. Stephane already fixed the make build, but there were a few mentions of lp_tile_soa left in the tree.
* llvmpipe: Fix incorrect sizeof.Vinson Lee2012-11-291-2/+2
| | | | | | | Fixes sizeof not portable defects reported by Coverity. Signed-off-by: Vinson Lee <vlee@freedesktop.org> Reviewed-by: Brian Paul <brianp@vmware.com>
* llvmpipe: Fix build break from 75da95c50Stéphane Marchesin2012-11-291-2/+1
| | | | | | The Makefile looks for a file which is gone (lp_tile_soa.c) http://bugs.freedesktop.org/show_bug.cgi?id=57713