summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600
Commit message (Collapse)AuthorAgeFilesLines
* r600g: Add R8G8B8A8_UNORM to evergreen colorswap tableBenjamin Franzke2011-06-231-0/+1
| | | | | | | | Fixes broken glTexImage2D with format=GL_RGBA since 1a339b6c71ebab6e1a64f05b2e133022d3bbcd15 The origin for this behaviour is that r600_is_format_supported checks only against r600_state_inline.h tables not evergreens.
* r600g: bump shader input limitsMarek Olšák2011-06-231-2/+2
|
* r600g: Fix use of uninitialized local variable extra_size.Michel Dänzer2011-06-221-1/+1
| | | | Should fix http://bugs.freedesktop.org/show_bug.cgi?id=38566 .
* r600g: fix fbo depth/stencil texture allocation for evergreen+Alex Deucher2011-06-211-3/+8
| | | | | | | | evergreen+ stores depth and stencil separately so when we allocate a depth/stencil fbo, make sure we allocate enough memory for both depth and stencil buffers. Signed-off-by: Alex Deucher <[email protected]>
* r600g: use maths instead of a loop to work out mask.Dave Airlie2011-06-211-4/+1
| | | | | | This is equivalent results with less looping. Signed-off-by: Dave Airlie <[email protected]>
* r600g: optimise draw vbo function a bit more.Dave Airlie2011-06-211-43/+9
| | | | | | | | this drop a bunch of unnecessary checks (i.e. should be trapped at gallium level), and also removes the switch statement in favour of some calculated values for the vgt values. Signed-off-by: Dave Airlie <[email protected]>
* r600g: reorder LIT instructions to support src == dstPierre-Eric Pelloux-Prayer2011-06-211-35/+36
| | | | | | | | | | | | the attached patch should be an improvement over Vadim Girlin's patch fixing LIT instruction for r600g (commit 2fe39b46e73aea37152777fe11d489e0b1bc3f92). Instructions used in tgsi_lit have been reordered to always write to a dst channel after the same channel in src has been read (so if src == dst, input values are not overwritten before being used). Signed-off-by: Dave Airlie <[email protected]>
* r600g: implement seamless_cube_map on r600-r700Marek Olšák2011-06-203-7/+46
| | | | | st/mesa guarantees that all bound sampler states have the same value in seamless_cube_map.
* r600g: remove some magic numbersMarek Olšák2011-06-192-2/+13
|
* u_vbuf_mgr: make u_vbuf_mgr_draw_begin return flags in a bitmaskMarek Olšák2011-06-191-1/+1
|
* r600g: fix warning: assignment discards qualifiers from pointer target typeMarek Olšák2011-06-191-1/+2
|
* r600g: fix LIT to handle src==dst properlyVadim Girlin2011-06-181-1/+3
| | | | | | | | | | | | | | Current LIT implementation uses dst components for storing temp results, possibly overwriting still needed values (depends on the swizzles). This patch uses temp reg for one of such cases (found in etqw) and fixes "LIT R.z, R.xyzz". Tested on evergreen. Fixes some etqw-demo rendering glitches when "Lighting" is set to "High" in the settings. Signed-off-by: Vadim Girlin <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* r600g: fix RSQ to use abs value of operand on evergreenVadim Girlin2011-06-181-1/+1
| | | | | | | fixes https://bugs.freedesktop.org/show_bug.cgi?id=36917 Signed-off-by: Vadim Girlin <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* r600g: fix source box in r600_resource_copy_regionVadim Girlin2011-06-181-2/+11
| | | | | | | | | Source box needs to be adjusted for blitting from compressed formats. fixes https://bugs.freedesktop.org/show_bug.cgi?id=35434 Signed-off-by: Vadim Girlin <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* r600: fix SPI inputs setup on r600/r700Vadim Girlin2011-06-161-4/+9
| | | | | Signed-off-by: Vadim Girlin <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* r600g: disable render condition for some blitter operationsMarek Olšák2011-06-153-6/+34
|
* r600g: fix TXD src regs needing fetching.Mike Kaplinskiy2011-06-151-46/+50
| | | | | | | | | [airlied: final chunk of Mike's patch from bug 37476 this uses a loop to emit the GRADIENTS and does a check to see if we need to fetch to a temporary register. It also increases the context src gpr to 4 which is needed here.] Signed-off-by: Dave Airlie <[email protected]>
* r600g: use inlines for some common tex instr setup code.Mike Kaplinskiy2011-06-151-11/+24
| | | | | | [airlied: taken from Mike's patch in bug 37476] Signed-off-by: Dave Airlie <[email protected]>
* r600g: fix TXD when shadowing is enabled.Mike Kaplinskiy2011-06-152-6/+17
| | | | | | | | Mike had actually done a lot of the TXD support in a patch in bug 37476 which I see now, I'll add the bits of his work that I didn't think to add to my work. Signed-off-by: Dave Airlie <[email protected]>
* r600g: add TXD support.Dave Airlie2011-06-154-6/+64
| | | | | | | | This at least passes the piglit arb_shader_texture_lod-texgrad test, the AMD shader analyzer seems to multiply the V component by an unspecified constant value no idea why. Signed-off-by: Dave Airlie <[email protected]>
* r600g: also set TILE_MODE of the base levelMarek Olšák2011-06-151-1/+1
|
* r600g: force OpenGL's BASE_LEVEL behavior on r600-r700Marek Olšák2011-06-151-10/+16
| | | | | | | | | | This sets the base level as the zero level, which fixes piglit/texturing/tex-miplevel-selection*. The r600 hardware ignores the BASE_LEVEL field in some cases, so we can't use it. Evergreen might need this too.
* r600g: fix RGB32F texturingMarek Olšák2011-06-141-1/+2
|
* r600g: fix indentation and commentsMarek Olšák2011-06-142-37/+40
|
* r600g: disable shader_texture_lod until there is driver supportMarek Olšák2011-06-141-1/+1
|
* r600g: skip SPI setup for position and face inputsVadim Girlin2011-06-142-4/+4
| | | | | | | fixes fdo bug 38145 Signed-off-by: Vadim Girlin <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* r600g: move depth texture flushing out of line.Dave Airlie2011-06-146-7/+36
| | | | | | this needs a piglit run. Signed-off-by: Dave Airlie <[email protected]>
* r600g: Put shaders into immutable buffers.Mathias Fröhlich2011-06-132-2/+3
| | | | | | Put the shader programs into an immutable buffer object. Also make sure that those object can be taken from the user space buffer object pool.
* r600g: Fix typo.Mathias Fröhlich2011-06-131-1/+1
| | | | Fix an obvious typo in the yet unused part of the shader setup.
* r600g: remove useless call to u_upload_flushPierre-Eric Pelloux-Prayer2011-06-131-5/+0
| | | | | | | | | | | | | | | | | | No regressions found with : - piglit (quick.tests) - Unigine Heaven - Lightsmark - openarena - Imprudence (Second Life fork) agd5f Note: this patch was previously reverted due to piglit regressions, but I'm not able to reproduce them here. See this bug: https://bugs.freedesktop.org/show_bug.cgi?id=34008 and discussion: http://lists.freedesktop.org/archives/dri-devel/2011-June/011996.html Signed-off-by: Alex Deucher <[email protected]>
* r600g: fixed bo memory leak issuePierre-Eric Pelloux-Prayer2011-06-131-0/+1
| | | | | pipe_resource_reference call was miossing, thus creating massive memory under certain conditions. Fix : https://bugs.freedesktop.org/show_bug.cgi?id=37168
* r600g: adjust vs/ps gprs on r600/r700 cards when needed.Dave Airlie2011-06-093-2/+51
| | | | | | | | | | | | | | | Ideally we'd have a compiler and register spilling and all that but this is good enough for now to avoid the gpu hang in piglit, glsl-vs-vec4-indexing-temp-dst-in-nested-loop-combined on r600/r700 cards. based on r600c patch Andre Maasikas <[email protected]> r600c: bump sq gpr resources if a shader needs more than default Signed-off-by: Dave Airlie <[email protected]>
* r600g: remove unused variableMarek Olšák2011-06-091-1/+0
|
* r600g: fix mixup in GPR resource reg setupAlex Deucher2011-06-081-3/+10
| | | | | | | GLOBAL_GPR regs should be 0. Need to set the number of temp regs in SQ_GPR_RESOURCE_MGMT_1. Signed-off-by: Alex Deucher <[email protected]>
* gallium: s/bool/boolean/Brian Paul2011-06-082-7/+7
|
* r600g: missed one line in eg dyn gpr fallback.Dave Airlie2011-06-081-0/+1
| | | | | | need more sleep or something. Signed-off-by: Dave Airlie <[email protected]>
* r600g: condition evergreen dyn gpr resource managementDave Airlie2011-06-082-2/+33
| | | | | | | So only with kernel version 2.7 can this work, thanks to Alex for pointing that out. Also add a workaround for a hw bug. Signed-off-by: Dave Airlie <[email protected]>
* r600g: enable dynamic GPR resource management on evergreenDave Airlie2011-06-082-18/+7
| | | | | | | | | | | Evergreen can do this as well as cayman, so we should enable it. This fixes a gpu lockup with glsl-vs-vec4-indexing-temp-dst-in-nested-loop-combined.shader_test I need to add a better workaround for r600/r700. Signed-off-by: Dave Airlie <[email protected]>
* r600g: take alpha ref update out of line.Dave Airlie2011-06-081-5/+4
| | | | Signed-off-by: Dave Airlie <[email protected]>
* r600g: split resource emit path from main register emit pathDave Airlie2011-06-081-0/+4
| | | | | | | | | Since resources don't generally vary in size, this splits the emit path, it also takes into a/c that texture and vertex resources have different number of relocs, and avoids emitting the extra reloc for vertex resources. Signed-off-by: Dave Airlie <[email protected]>
* r600g: inline r600_bo_reference.Dave Airlie2011-06-081-2/+13
| | | | | | This relies on the reference member being first, so document it. Signed-off-by: Dave Airlie <[email protected]>
* r600g: remove pre-r6xx asic families and pci idsAlex Deucher2011-06-071-32/+0
| | | | | | Not sure why these were included originally. Signed-off-by: Alex Deucher <[email protected]>
* r600g: add missing r300 familiesMarek Olšák2011-06-071-0/+5
| | | | Wondering why r600g needs to include r300_pci_ids.h
* r600g: use an enabled list to track enabled blocks.Dave Airlie2011-06-071-0/+2
| | | | | | | | At the end of flushing we were scanning over 450 blocks with generally about 50 enabled. This reduces the scanning to just the list of enabled blocks. Signed-off-by: Dave Airlie <[email protected]>
* r600g/winsys: overhaul resource range/blocks.Dave Airlie2011-06-071-0/+4
| | | | | | | There isn't much point taking the overhead of range/block lookups on resources we aren't going to be getting resource registers at wierd offsets. Signed-off-by: Dave Airlie <[email protected]>
* r600g: move resource setting to its own structures.Dave Airlie2011-06-075-144/+110
| | | | | | | | | resource setting could be a fair bit more lightweight, this patch just separates the resource structs from the standard reg tracking structs in the driver, later patches will improve the winsys. Signed-off-by: Dave Airlie <[email protected]>
* r600g: move spi update to only when states change.Dave Airlie2011-06-031-2/+9
| | | | | | | This updates the spi state after ps/vs binding or rasteriser state change. Signed-off-by: Dave Airlie <[email protected]>
* r600g: make conv pipe prim table driven.Dave Airlie2011-06-031-32/+20
| | | | | | | This is a lot more branch predictor friendly, it actually showed up in cachegrind profiles. Signed-off-by: Dave Airlie <[email protected]>
* r600g: sampler and texture state doesn't need a range/block.Dave Airlie2011-06-034-34/+50
| | | | | | | | | These are handled separately in the winsys, so don't need the calculations done at this point. this manifested as a crash in point-sprite, Thanks to XoD on #radeon for pointing it out. Signed-off-by: Dave Airlie <[email protected]>
* r600g: add spi state and move spi/vgt to modify registerDave Airlie2011-06-022-16/+35
| | | | | | | | | This modifies the VGT state and move the SPI setup to its own discrete state. It then just sets the SPI state up and the VGT state up once and modifies them thereafter. Signed-off-by: Dave Airlie <[email protected]>