summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600
Commit message (Collapse)AuthorAgeFilesLines
* r600g: Remove r600_helper.c from SConscript.Vinson Lee2011-04-241-1/+0
| | | | This is a follow-up to commit d737857ed2ff4313fd6046dcd80018c6308a53c5.
* r600g: trivially implement LATC/3DCMarek Olšák2011-04-251-0/+4
| | | | Passes fbo-generatemipmap-formats.
* r600g: drop r600_helper.c no point in itDave Airlie2011-04-254-73/+39
| | | | | | move the one function into state common Signed-off-by: Dave Airlie <[email protected]>
* r600g: enable EXT_draw_buffers2Dave Airlie2011-04-251-5/+1
| | | | | | | Doesn't cause any piglit regression and passes the fbo-draw-buffers-blend test. Signed-off-by: Dave Airlie <[email protected]>
* r600g: fix glean clipflat test.Dave Airlie2011-04-242-3/+8
| | | | | | | | the provoking vertex doesn't apply to quad/strip/polygon. This fixes clipFlat on r600g. Signed-off-by: Dave Airlie <[email protected]>
* r600g: fix glsl-fs-abs-negDave Airlie2011-04-241-0/+2
| | | | | | the hw does neg after abs, so don't neg the source in the ABS instruction case. Signed-off-by: Dave Airlie <[email protected]>
* r600g: fix bank swizzle calcs for scalar only operations.Dave Airlie2011-04-241-15/+25
| | | | | | | | | | | | In the initial code if we had nothing in the vector slots r would never get reset to 0, so we'd fail to compile shaders, after the previous commit this would happen for the LIT tests. When I fixed that we did a lot of unnecessary loops through all the vector states when we had no vector slots filled. So this patch optimises thing for the scalar only state. This fixes the 3 LIT piglit tests on r600g. Signed-off-by: Dave Airlie <[email protected]>
* r600g: PV/PS have cycle restrictions in scalar operationsDave Airlie2011-04-241-2/+6
| | | | | | | | | | In the R600 ISA document: Section 4.7.5 Cycle restrictions for the ALU.trans states that PV/PS have cycle restrictions wrt constants. This is part of a fix for the LIT tests Signed-off-by: Dave Airlie <[email protected]>
* gallium: add fallback for copying buffers to all driversMarek Olšák2011-04-211-0/+7
| | | | | | Just to keep drivers working. Reviewed-by: Jakob Bornecrantz <[email protected]>
* r600g: don't flush the dest caches on every drawFredrik Höglund2011-04-205-5/+35
| | | | | | | Keep track of when the caches are dirty, and only flush them when the framebuffer state is set and when the context is flushed. Signed-off-by: Dave Airlie <[email protected]>
* r600g: add evergreen+ big endian supportAlex Deucher2011-04-194-6/+74
| | | | | | Based on Cédric's r6xx/r7xx patch. Signed-off-by: Alex Deucher <[email protected]>
* r600g: add big endian support for r6xx/r7xxCédric Cano2011-04-198-14/+151
| | | | | Signed-off-by: Cedric Cano <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* r600g: add cb support for snorm formats.Dave Airlie2011-04-192-9/+13
| | | | | | Check for signed type and enable SNORM. Signed-off-by: Dave Airlie <[email protected]>
* r600g: fix warnings with piglit texture-rg test.Dave Airlie2011-04-192-0/+6
| | | | | | Fill in the swaps for the formats to fix warnings. Signed-off-by: Dave Airlie <[email protected]>
* r600g: modify block to only emit the first few dirty registers. (v2)Dave Airlie2011-04-191-1/+2
| | | | | | | | | | | This gets me from 2200 to 1978 dwords for a gears frame. This is due to us having some 32-dwords blocks in the SPI, that we only modify the first dwords off. v2: fix dirty reg count from Bas Nieuwenhuizen Signed-off-by: Dave Airlie <[email protected]>
* r600g: track dirty registers better. (v2)Dave Airlie2011-04-191-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | This is a first step to decreasing the CPU usage, by decreasing how much stuff we pass to the GPU and hence to the kernel CS checker. This adds a check to see if the values we need to write are actually dirty, and avoids writing if they are. However certain register need to always be written so we add a new flag to say which ones should be always written if used. (Note this could probably be done cleaner with a larger refactoring, since I think the CONST_BUFFER_SIZE_PS/VS and CONST_CACHE_PS/VS might be better off as a special state). It also moves the need_bo to be a flags on the register now. With this, a frame of gears goes from emitting 3k dwords to emitting 2k dwords, and I'm sure it could get a lot smaller. v2: fix some evergreen dirty bits. Original patch from: Bas Nieuwenhuizen, I NIHed nearly the same thing before seeing his patch on the list, oops. Reviewed-by: Bas Nieuwenhuizen Signed-off-by: Dave Airlie <[email protected]>
* r600g: disable ARB_draw_instancedMarek Olšák2011-04-181-1/+3
| | | | | | | The very presence of this extension breaks things. This should bring us closer to being able to run Unigine Heaven. The extension will be re-enabled once gl_InstanceID is implemented.
* gallium: include u_format.h for util_format_is_supportedMarcin Slusarz2011-04-171-0/+1
| | | | | | | | | | | | Without it gcc complains: nv50_screen.c: In function ‘nv50_screen_is_format_supported’: nv50_screen.c:48: warning: implicit declaration of function ‘util_format_is_supported’ and handles it wrongly - util_format_is_supported returns boolean, which is typedef'ed to uchar, but function without prototype is assumed to return int. For me nv50_screen_is_format_supported was returning true for float formats without --enable-texture-float...
* gallium: add and use generic function for querying patented format support (v2)Marek Olšák2011-04-151-0/+3
| | | | v2: Unsigned floats are allowed regardless of the configure switch.
* r600g: handle PIPE_CAP_FRAGMENT_COLOR_CLAMP_CONTROL in get_paramMarek Olšák2011-04-111-0/+1
|
* r600g: Unreference framebuffer state on context destruction.Henri Verbeet2011-04-071-0/+1
| | | | Signed-off-by: Henri Verbeet <[email protected]>
* r600g: Use symbolic names for NUMBER_TYPE.Henri Verbeet2011-04-072-5/+5
| | | | Signed-off-by: Henri Verbeet <[email protected]>
* r600g: Fix non-independent blend state.Julian Adams2011-04-062-14/+20
| | | | | | This fixes piglit fbo/fbo-drawbuffers-blend-add. Signed-off-by: Henri Verbeet <[email protected]>
* gallium: set PIPE_CAP_MIXED_COLORBUFFER_FORMATS in some driversMarek Olšák2011-04-011-0/+1
|
* r600g: implement texture barrierFredrik Höglund2011-03-294-0/+12
|
* r600g: implement the pipe_screen fence functionsFredrik Höglund2011-03-293-0/+174
| | | | | | v2: Allocate the fences from a single shared buffer object. v3: Allocate the r600_fence structs in blocks of 16. Spin a few times before calling sched_yield in r600_fence_finish().
* r600g: Handle texture fetch instructions with relative addressingFabian Bieler2011-03-271-0/+1
| | | | Signed-off-by: Henri Verbeet <[email protected]>
* r600g: Handle texture fetch instructions with neg or abs on source registerFabian Bieler2011-03-271-3/+5
| | | | Signed-off-by: Henri Verbeet <[email protected]>
* r600g: Handle texture fetch instructions with swizzle on source registerFabian Bieler2011-03-271-10/+20
| | | | Signed-off-by: Henri Verbeet <[email protected]>
* r600g: Check for relative addressing in destination register when trying to ↵Fabian Bieler2011-03-221-1/+8
| | | | | | merge instruction groups Signed-off-by: Henri Verbeet <[email protected]>
* r600g: FLT_TO_INT_FLOOR and FLT_TO_INT_RPI are vector-only instructions on ↵Henri Verbeet2011-03-151-3/+6
| | | | | | Evergreen. Signed-off-by: Henri Verbeet <[email protected]>
* r600g: don't set per-MRT blend bits on R600Alex Deucher2011-03-141-5/+10
| | | | | | | | | It doesn't support them. Also, we shouldn't be emitting CB_BLENDx_CONTROL on R600 as the regs don't exist there, but I'm not sure of the best way to deal with this in the current r600 winsys. Signed-off-by: Alex Deucher <[email protected]>
* r600g: Original R600 does not support per-MRT blendsAlex Deucher2011-03-141-2/+11
| | | | | | Only rv6xx+ support them. Signed-off-by: Alex Deucher <[email protected]>
* r600g: Properly update MULTIWRITE_ENABLE in r600_pipe_shader_ps().Henri Verbeet2011-03-142-8/+7
| | | | | | | This sort of worked because blend state setup cleared MULTIWRITE_ENABLE again, but that's not something we want to depend on. Signed-off-by: Henri Verbeet <[email protected]>
* r600g: Fix the DB_SHADER_CONTROL mask in create_ds_state().Henri Verbeet2011-03-142-10/+8
| | | | Signed-off-by: Henri Verbeet <[email protected]>
* r600g: Properly update DB_SHADER_CONTROL in evergreen_pipe_shader_ps().Henri Verbeet2011-03-141-18/+14
| | | | | | | Disable Z_EXPORT / STENCIL_EXPORT / KILL_ENABLE again if a shader doesn't use those. This is similar to 0a6f09a76a416b8672e149c520aa5bef33174223. Signed-off-by: Henri Verbeet <[email protected]>
* r600g: Move fetch shader register setup to r600_state.c / evergreen_state.c.Henri Verbeet2011-03-146-31/+32
| | | | Signed-off-by: Henri Verbeet <[email protected]>
* r600g: Move r600_pipe_shader_ps() to r600_state.c.Henri Verbeet2011-03-143-95/+97
| | | | Signed-off-by: Henri Verbeet <[email protected]>
* r600g: Move r600_pipe_shader_vs() to r600_state.c.Henri Verbeet2011-03-143-49/+49
| | | | | | | | The idea behind this is that anything touching registers should be in r600_state.c or evergreen_state.c. This is also consistent with evergreen_pipe_shader_vs(). Signed-off-by: Henri Verbeet <[email protected]>
* r600g: Evergreen add support for log opcode.Rafael Monica2011-03-141-1/+1
| | | | Signed-off-by: Henri Verbeet <[email protected]>
* r600g: Only update DB_SHADER_CONTROL once in r600_pipe_shader_ps().Mathias Fröhlich2011-03-131-16/+13
| | | | | | | | | Avoid setting the same gpu register several times in a r600_pipe_state. Compute the final value of the register and set that one time. This avoids some overhead in r600_context_pipe_state_set(). Signed-off-by: Mathias Fröhlich <[email protected]> Signed-off-by: Henri Verbeet <[email protected]>
* r600g: Fix VS sampler view offsets for r600/r700.Carl-Philip Hänsch2011-03-121-1/+2
| | | | | | 077c448d184799e0d9ec962013ec784c6a5c1807 missed this. Signed-off-by: Henri Verbeet <[email protected]>
* r600g: Fix an unused variable warning.Henri Verbeet2011-03-121-3/+5
|
* r600g: revert unintentional commitAdam Jackson2011-03-111-1/+0
|
* r600: Build fixAdam Jackson2011-03-111-0/+1
| | | | r600_dri.so.tmp: undefined reference to `_mesa_rgba_logicop_enabled'
* gallium: remove flags from the flush functionMarek Olšák2011-03-113-4/+4
| | | | | | | | | | The drivers have been changed so that they behave as if all of the flags were set. This is already implicit in most hardware drivers and required for multiple contexts. Some state trackers were also abusing the PIPE_FLUSH_RENDER_CACHE flag to decide whether flush_frontbuffer should be called. New flag ST_FLUSH_FRONT has been added to st_api.h as a replacement.
* gallium: remove the geom_flags param from is_format_supportedMarek Olšák2011-03-112-4/+3
|
* gallium: kill is_resource_referencedMarek Olšák2011-03-113-19/+0
| | | | Only st/xorg used it and even incorrectly with regards to pipelined transfers.
* r600g: remove some now unneeded code from r600_bc_vtx_buildChristian König2011-03-091-25/+1
|
* r600g: R700+ can do more than 8 tex and vtx clause in one CF instChristian König2011-03-091-2/+20
| | | | Reviewed-by: Henri Verbeet <[email protected]>