summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600
Commit message (Collapse)AuthorAgeFilesLines
* r600g: rework queriesMarek Olšák2012-02-233-116/+167
| | | | | | | | | | | | | | | | We always mapped the query buffer in begin_query, causing stalls if the buffer was busy. This commit reworks it such that the query buffer is only mapped in get_query_result as it's supposed to be. The query buffer is no longer treated as a ring buffer. Instead, the results are just appended and when the buffer is full, we create a new one. One query can have more than one query buffer, though that's a very rare case. Begin_query releases all query buffers. Reviewed-by: Jerome Glisse <[email protected]> Reviewed-by: Alex Deucher <[email protected]>
* r600g: cleanup magic numbers in set_xx_samplerMarek Olšák2012-02-232-6/+6
| | | | | Reviewed-by: Jerome Glisse <[email protected]> Reviewed-by: Alex Deucher <[email protected]>
* r600g: remove duplicated evergreen_context_ps_partial_flushMarek Olšák2012-02-233-15/+3
| | | | | Reviewed-by: Jerome Glisse <[email protected]> Reviewed-by: Alex Deucher <[email protected]>
* r600g: remove duplicated evergreen_context_pipe_state_set_samplerMarek Olšák2012-02-233-31/+5
| | | | | Reviewed-by: Jerome Glisse <[email protected]> Reviewed-by: Alex Deucher <[email protected]>
* r600g: remove duplicated set_xx_resource functionsMarek Olšák2012-02-234-48/+13
| | | | | Reviewed-by: Jerome Glisse <[email protected]> Reviewed-by: Alex Deucher <[email protected]>
* r600g: remove duplicated function r600_state_sampler_initMarek Olšák2012-02-233-18/+3
| | | | | Reviewed-by: Jerome Glisse <[email protected]> Reviewed-by: Alex Deucher <[email protected]>
* r600g: fixup name of evergreen-specific functionMarek Olšák2012-02-231-5/+5
| | | | | Reviewed-by: Jerome Glisse <[email protected]> Reviewed-by: Alex Deucher <[email protected]>
* r600g: simplify fail paths in create_contextMarek Olšák2012-02-231-22/+15
| | | | | Reviewed-by: Jerome Glisse <[email protected]> Reviewed-by: Alex Deucher <[email protected]>
* r600g: fix possible crashes in destroy_context when failing in create_contextMarek Olšák2012-02-232-25/+38
| | | | | Reviewed-by: Jerome Glisse <[email protected]> Reviewed-by: Alex Deucher <[email protected]>
* r600g: consolidate common context init codeMarek Olšák2012-02-233-34/+16
| | | | | Reviewed-by: Jerome Glisse <[email protected]> Reviewed-by: Alex Deucher <[email protected]>
* r600g: define GROUP_FORCE_NEW_BLOCK in common headerMarek Olšák2012-02-233-4/+2
| | | | | Reviewed-by: Jerome Glisse <[email protected]> Reviewed-by: Alex Deucher <[email protected]>
* r600g: Fix build when libdrm is installed to non-standard dir.Satyajit Sarangi2012-02-221-0/+3
| | | | | Signed-off-by: Satyajit Sarangi<[email protected]> Signed-off-by: Tom Stellard <[email protected]>
* r600g: move invariant register updates into start_cs for evergreen and caymanMarek Olšák2012-02-213-118/+100
|
* r600g: move invariant register updates into start_cs for r6xx-r7xxMarek Olšák2012-02-213-102/+82
|
* r600g: add a depth misc state which depends on occlusion queriesMarek Olšák2012-02-2110-91/+152
| | | | | | | | | | | | | | | | This is a state which is derived from other states and is actually the first state which doesn't correspond to any gallium state. There are two state flags: bool occlusion_query_enabled bool flush_depthstencil_enabled Additional flags can be added later if needed, e.g. bool hiz_enabled. The emit function will have to figure out the register values by itself. It basically just emits the registers when the state changes. This commit also adds a few helper functions for writing registers directly into a command stream.
* r600g: consolidate the main draw codeMarek Olšák2012-02-214-133/+50
| | | | | The code was almost the same for r600 and eg. What can't be consolidated is in the *_prepare functions.
* r600g: move all invariant state from draw_vbo into start_csMarek Olšák2012-02-217-20/+35
|
* r600g: turn init_config into a command buffer for starting a CSMarek Olšák2012-02-2110-479/+379
| | | | | | | | | | | This is the first pure command buffer. It contains CS initialization packets and emits invariant state (i.e. the registers which never or rarely change). The affected registers are removed from *_hw_context.c, so that both ways of emitting commands can co-exist. v2: emit context_control in cayman's start_cs too
* gallium: remove unused winsys pointers in pipe_screen and pipe_contextMarek Olšák2012-02-211-2/+0
| | | | A winsys is already a private object of a driver.
* r600g: remove the workaround for quads and provoking vertexMarek Olšák2012-02-165-33/+25
|
* r600g: remove redundant r600_context::vs_so_stride_in_dwMarek Olšák2012-02-163-4/+1
|
* r600g: Use a fake reloc to sleep for fencesSimon Farnsworth2012-02-142-2/+24
| | | | | | | | | | | | | | r300g is able to sleep until a fence completes rather than busywait because it creates a special buffer object and relocation that stays busy until the CS containing the fence is finished. Copy the idea into r600g, and use it to sleep if the user asked for an infinite wait, falling back to busywaiting if the user provided a timeout. Note: this is a candidate for the stable branches. Signed-off-by: Simon Farnsworth <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* r600g: consolidate set_blend_color codeMarek Olšák2012-02-144-40/+23
|
* r600g: consolidate more translate functionsMarek Olšák2012-02-144-140/+74
|
* r600g: inline r600_translate_ds_funcMarek Olšák2012-02-142-16/+4
|
* r600g: remove unused variableMarek Olšák2012-02-141-2/+0
|
* r600g: consolidate some translate functionsMarek Olšák2012-02-144-84/+44
|
* Revert "r600g: don't advertise integer textures without GLSL 1.3"Marek Olšák2012-02-142-8/+0
| | | | | | This reverts commit 2c06bcb90982280e82a044b8be83be8fdf5a9590. It breaks u_blitter trying to blit compressed textures as uint.
* r600g: don't advertise integer textures without GLSL 1.3Marek Olšák2012-02-142-0/+8
|
* r600g: 128 bit formats require tile_type = 1 on caymanAlex Deucher2012-02-101-0/+10
| | | | | | | | Noticed by taiu on IRC. Signed-off-by: Alex Deucher <[email protected]> Note: this is a candidate for the stable branches.
* r600g: fix tex tile_type offset for caymanAlex Deucher2012-02-102-1/+7
| | | | | | | | Noticed by taiu on IRC. Signed-off-by: Alex Deucher <[email protected]> Note: this is a candidate for the stable branches.
* gallium: add PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTIONChristoph Bumiller2012-02-091-0/+1
| | | | | | | Just let the hardware do it if it can and avoid drivers having to check for the special case on each draw call. v2: update the draw module
* r600g: fix handling of outputs as TEX addr sourcesChristian König2012-02-081-1/+2
| | | | | | | | Outputs should be treated in the same way as inputs and temporaries here. Signed-off-by: Christian König <[email protected]> Reviewed-by: Alex Deucher <[email protected]>
* r600g: remove unused vars to silence warningsBrian Paul2012-02-071-2/+0
|
* scons: r300/r600 now depends on libdrm.José Fonseca2012-02-071-0/+2
| | | | As they now indirectly include on libdrm/radeon_surface.h.
* r600g: add support for common surface allocator for tiling v13Jerome Glisse2012-02-068-123/+739
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tiled surface have all kind of alignment constraint that needs to be met. Instead of having all this code duplicated btw ddx and mesa use common code in libdrm_radeon this also ensure that both ddx and mesa compute those alignment in the same way. v2 fix evergreen v3 fix compressed texture and workaround cube texture issue by disabling 2D array mode for cubemap (need to check if r7xx and newer are also affected by the issue) v4 fix texture array v5 fix evergreen and newer, split surface values computation from mipmap tree generation so that we can get them directly from the ddx v6 final fix to evergreen tile split value v7 fix mipmap offset to avoid to use random value, use color view depth view to address different layer as hardware is doing some magic rotation depending on the layer v8 fix COLOR_VIEW on r6xx for linear array mode, use COLOR_VIEW on evergreen, align bytes per pixel to a multiple of a dword v9 fix handling of stencil on evergreen, half fix for compressed texture v10 fix evergreen compressed texture proper support for stencil tile split. Fix stencil issue when array mode was clear by the kernel, always program stencil bo. On evergreen depth buffer bo need to be big enough to hold depth buffer + stencil buffer as even with stencil disabled things get written there. v11 rebase on top of mesa, fix pitch issue with 1d surface on evergreen, old ddx overestimate those. Fix linear case when pitch*height < 64. Fix r300g. v12 Fix linear case when pitch*height < 64 for old path, adapt to libdrm API change v13 add libdrm check Signed-off-by: Jerome Glisse <[email protected]>
* vl: add interlacing capabilitiesChristian König2012-02-061-0/+6
| | | | | | | Let the driver control interlaced or progressive format of video buffers. Signed-off-by: Christian König <[email protected]>
* r600g: shorten expressions accessing family and chip_classMarek Olšák2012-01-313-19/+19
|
* r600g: remove unused variable num_dest_buffersMarek Olšák2012-01-313-5/+0
|
* r600g: use the new code for streamout flush as wellMarek Olšák2012-01-311-11/+6
|
* r600g: rename r600_reg::flush_flags -> sbu_flagsMarek Olšák2012-01-313-4/+4
| | | | There is no other use for that.
* r600g: fix computation of how many dwords is needed for a flush at the end of CSMarek Olšák2012-01-312-11/+4
|
* r600g: remove unused r600_reg::flush_maskMarek Olšák2012-01-313-1179/+1176
|
* r600g: remove more dead codeMarek Olšák2012-01-312-9/+0
|
* r600g: remove dead code for tracking relocationsMarek Olšák2012-01-314-32/+1
|
* r600g: remove unused flush codeMarek Olšák2012-01-312-40/+0
|
* r600g: rework cache flushingMarek Olšák2012-01-319-190/+193
| | | | | | | | | | | This also significantly improves the RV670 flush by using the CB1 flush *always* and also DEST_BASE_0_ENA, which appears to magically fix some tests. I am not entirely sure, but it's possible that RV670 flushing is fixed completely. v2: fix cayman by flushing texture cache instead of vertex cache Thanks to Dave Airlie for testing Cayman.
* r600g: add a new simple API for state emissionMarek Olšák2012-01-314-0/+54
|
* r600g: remove redundant pm4 and pm4_cdwords in r600_contextMarek Olšák2012-01-313-215/+234
| | | | These only mirrored radeon_winsys_cs.
* r600g: consolidate some context_draw codeMarek Olšák2012-01-315-56/+23
|