aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/r600.h
Commit message (Collapse)AuthorAgeFilesLines
* r600g: inline r600_context_draw_opaque_countMarek Olšák2012-07-181-1/+0
|
* r600g: remove unused code after conversion of sampler viewsMarek Olšák2012-07-171-11/+0
|
* r600g: Add r600_context_pipe_state_emit()Tom Stellard2012-07-091-0/+1
| | | | | | | | This function is used when dispatching compute shader in order to avoid mixing compute and 3D registers in the context's dirty list. This allows the compute code to resuse 3D functions like evergreen_cb, which return a struct r600_pipe_state and still have control over when and how the register writes are emitted.
* r600g: Add pkt_flag parameter to r600_context_block_emit_dirty()Tom Stellard2012-07-091-1/+1
| | | | | | | This allows the shader type bit to be set in the pm4 header when emitting registers for compute shaders. Reviewed-by: Marek Olšák <[email protected]>
* gallium: make user vertex buffers optionalMarek Olšák2012-04-241-1/+0
| | | | | | | | | | | This couldn't be split because it would break bisecting. Summary: * r300g,r600g: stop using u_vbuf * r300g,r600g: also report that the FIXED vertex type is unsupported * u_vbuf: refactor for use in the state tracker * cso: wire up u_vbuf with cso_context * st/mesa: conditionally install u_vbuf
* u_vbuf: remove u_vbuf_resourceMarek Olšák2012-04-241-1/+2
|
* r600g: split add_reg into add_reg and add_reg_bo variantsDave Airlie2012-04-231-4/+10
| | | | | | | | | This shaves 2k off the final dri.so, and removes lots of pointless NULL, 0 passing. most like pointless - but it looked nicer to me. Signed-off-by: Dave Airlie <[email protected]>
* r600g: remove dead code after the reworkMarek Olšák2012-04-041-12/+0
| | | | Reviewed-by: Alex Deucher <[email protected]>
* r600g: rework state emission of vertex buffersMarek Olšák2012-04-041-1/+0
| | | | | | | | | | | | This reduces a little of CPU overhead. The idea is to translate pipe vertex buffers directly into the CS and not using any intermediate representations. Framerate in Torcs: before: 32.2 after: 34.6 Reviewed-by: Alex Deucher <[email protected]>
* r600g: cleanup after get_query_result changeMarek Olšák2012-03-301-6/+0
| | | | Finally, union r600_query_result can be removed.
* r600g: add support for TN (trinity) APUsAlex Deucher2012-03-201-0/+1
| | | | | | Note: this is a candidate for the stable branches. Signed-off-by: Alex Deucher <[email protected]>
* r600g: remove unused definitionsMarek Olšák2012-03-051-3/+0
|
* r600g: move all query code into r600_query.cMarek Olšák2012-03-051-12/+0
| | | | | | | | And rename or inline functions where appropriate. There is no reason to keep this stuff in r600_hw_context.c. Reviewed-by: Alex Deucher <[email protected]> Reviewed-by: Christian König <[email protected]>
* r600g: rework queriesMarek Olšák2012-02-231-14/+21
| | | | | | | | | | | | | | | | 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: remove duplicated set_xx_resource functionsMarek Olšák2012-02-231-3/+0
| | | | | Reviewed-by: Jerome Glisse <[email protected]> Reviewed-by: Alex Deucher <[email protected]>
* r600g: add a depth misc state which depends on occlusion queriesMarek Olšák2012-02-211-2/+0
| | | | | | | | | | | | | | | | 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-211-13/+2
| | | | | The code was almost the same for r600 and eg. What can't be consolidated is in the *_prepare functions.
* r600g: fix computation of how many dwords is needed for a flush at the end of CSMarek Olšák2012-01-311-1/+0
|
* r600g: remove more dead codeMarek Olšák2012-01-311-2/+0
|
* r600g: rework cache flushingMarek Olšák2012-01-311-3/+4
| | | | | | | | | | | 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: consolidate some context_draw codeMarek Olšák2012-01-311-0/+3
|
* r600g: don't initialize the screen and winsys pointer twiceMarek Olšák2012-01-311-2/+2
|
* r600g: merge r600_context with r600_pipe_contextMarek Olšák2012-01-311-48/+4
| | | | The split made no sense.
* r600g: remove u8,u16,u32,u64 typesMarek Olšák2012-01-311-28/+23
|
* r600g: don't use r600_context_reg on r6xx-r7xxMarek Olšák2012-01-311-0/+1
| | | | | Reviewed-by: Dave Airlie <[email protected]> Reviewed-by: Alex Deucher <[email protected]>
* r600g: don't use r600_context_reg on evergreenMarek Olšák2012-01-311-0/+1
| | | | | | | Just getting rid of things which use the register mask. Reviewed-by: Dave Airlie <[email protected]> Reviewed-by: Alex Deucher <[email protected]>
* r600g: get rid of the mask in r600_pipe_regMarek Olšák2012-01-311-1/+0
| | | | | Reviewed-by: Dave Airlie <[email protected]> Reviewed-by: Alex Deucher <[email protected]>
* r600g: get rid of the mask parameter in pipe_state_add_regMarek Olšák2012-01-311-3/+3
| | | | | Reviewed-by: Dave Airlie <[email protected]> Reviewed-by: Alex Deucher <[email protected]>
* gallium: improve the pipe_stream_output_info struct (v2)Marek Olšák2012-01-151-2/+2
| | | | | | | | | | | | | | | | | | | | | There are 3 changes: 1) stride is specified for each buffer, not just one, so that drivers don't have to derive it from the outputs 2) new per-output property dst_offset, which specifies the offset into the buffer in dwords where the output should be stored, so that drivers don't have to compute the offsets manually; this will also be useful for gl_SkipComponents from ARB_transform_feedback3 3) register_mask is removed, instead, there is start_component and num_components; register_mask with non-consecutive 1s doesn't make much sense (some hardware cannot do packing of components) Christoph Bumiller: fixed nvc0. v2: resolve merge conflicts in Draw and clean it up
* winsys/radeon: move managing GEM domains back to driversMarek Olšák2011-12-241-0/+3
| | | | | | | | This partially reverts commit 363ff844753c46ac9c13866627e096b091ea81f8. It caused severe performance drops in Nexuiz. Reported by Phoronix. Tested by me on r300g and by IRC people on r600g.
* r600g: implement transform feedbackMarek Olšák2011-12-171-0/+21
| | | | | | | | r600: DONE. r700: MOSTLY (done but locks up). Evergreen: MOSTLY (done but doesn't work for an unknown reason). The kernel support will come soon.
* u_vbuf_mgr: rename to u_vbufMarek Olšák2011-11-221-1/+1
|
* r600g: the type of OCCLUSION_PREDICATE result should be booleanMarek Olšák2011-11-111-1/+4
|
* r600g: flush the whole context when CS is full, not just hw_contextMarek Olšák2011-11-101-0/+3
| | | | Because we disable render condition in r600_flush, but not in r600_context_flush.
* r600g: put the rest of CS overflow checks in r600_need_cs_spaceMarek Olšák2011-11-101-1/+0
|
* r600g: properly reserve CS space for queries_suspendMarek Olšák2011-11-101-1/+3
|
* r600g: cosmetic changes in query codeMarek Olšák2011-11-091-4/+2
| | | | Mainly updating comments and removing one use of a magic number.
* r600g: shortcut ctx->screen->ws to ctx->wsMarek Olšák2011-10-301-0/+1
|
* r600g: remove one pointless flushMarek Olšák2011-10-291-5/+1
| | | | | | | | It's not useful for anything. The rest of the patch is just a cleanup resulting from some of the variables being no longer used. There are no piglit regressions.
* r600g: only maintain the list of active queriesMarek Olšák2011-10-281-7/+4
| | | | | | | | And not all existing queries. The only reason we have that list is to be able to suspend and resume the active ones. This reduces looping over queries when suspending and resuming. The queries no longer have to track some of their states.
* r600g: remove redundant variable r600_query::buffer_sizeMarek Olšák2011-10-281-1/+0
|
* winsys/radeon: move GEM domains out of the drivers into winsysMarek Olšák2011-09-301-3/+0
| | | | | | | | | | | | | | | The drivers don't need to care about the domains. All they need to set are the bind and usage flags. This simplifies the winsys too. This also fixes on r600g: - fbo-depth-GL_DEPTH_COMPONENT32F-copypixels - fbo-depth-GL_DEPTH_COMPONENT16-copypixels - fbo-depth-GL_DEPTH_COMPONENT24-copypixels - fbo-depth-GL_DEPTH_COMPONENT32-copypixels - fbo-depth-GL_DEPTH24_STENCIL8-copypixels I can't explain it. Reviewed-by: Alex Deucher <[email protected]>
* r600g: remove struct radeon (or what's left of it)Marek Olšák2011-09-301-7/+2
| | | | Reviewed-by: Alex Deucher <[email protected]>
* r600g: move family and chip_class from struct radeon to r600_screenMarek Olšák2011-09-301-3/+0
| | | | Reviewed-by: Alex Deucher <[email protected]>
* r600g: merge r600_bo with r600_resourceMarek Olšák2011-09-301-37/+22
| | | | | | | I have moved 'last_flush' and 'binding' from r600_bo to winsys/radeon. The other members are now part of r600_resource. Reviewed-by: Alex Deucher <[email protected]>
* r600g: remove an irrelevant XXX commentMarek Olšák2011-09-121-1/+1
|
* r600g: set the return type of radeon_destroy to voidMarek Olšák2011-09-121-1/+1
|
* r600g: remove r600_drm_public.hMarek Olšák2011-09-121-0/+1
|
* r600g: inline some of the winsys r600_get functionsMarek Olšák2011-09-121-5/+0
|
* r600g: compute tiling info in the pipe, not in the winsysMarek Olšák2011-09-121-1/+0
| | | | The winsys doesn't need it.