summaryrefslogtreecommitdiffstats
path: root/src/gallium/winsys
Commit message (Collapse)AuthorAgeFilesLines
* r600g: avoid dynamic allocation of statesJerome Glisse2010-09-016-308/+122
| | | | | | | | | | | Make state statically allocated, this kills a bunch of code and avoid intensive use of malloc/free. There is still a lot of useless duplicate function wrapping that can be kill. This doesn't improve yet performance, needs to avoid memcpy states in radeon_ctx_set_draw and to avoid rebuilding vs_resources, dsa, scissor, cb_cntl, ... states at each draw command. Signed-off-by: Jerome Glisse <[email protected]>
* Revert "Revert "r600g: precompute some of the hw state""Jerome Glisse2010-09-014-32/+87
| | | | | | | | This reverts commit 1fa7245c348cb7aced81f1672140f64cb6450e2f. Conflicts: src/gallium/drivers/r600/r600_state.c
* Revert "r600g: precompute some of the hw state"Dave Airlie2010-09-014-87/+32
| | | | | | | | | | This reverts commit de0b76cab22caa9fc7260f80acb8f151ccced6c5, its pre-computes the texture state wrong, you can't just use an array of levels, since you can have FBOs to depth texture slices inside a level as well it would get really messy quickly. Probably need to split commits like this up into pieces for each piece of state, so we can revert bits easier in case of regressions. This also break 5 piglit tests, and valgrind starts to warn about invalid read/writes after this.
* r600g: precompute some of the hw stateJerome Glisse2010-08-304-32/+87
| | | | | | | | | | Idea is to build hw state at pipe state creation and reuse them while keeping a non PM4 packet interface btw winsys & pipe driver. This commit also force rebuild of pm4 packet on each call to radeon_state_pm4 which in turn slow down everythings, this will be addressed. Signed-off-by: Jerome Glisse <[email protected]>
* r600g: fixup states generation in winsys.Dave Airlie2010-08-307-218/+210
| | | | | | | | | | | | | | | | | | | | The current states code had an unhealthy relationship between that had to somehow magically align themselves, editing either place meant renumbering all states after the one you were on, and it was pretty unapproachable code. This replaces the huge types structures with a simple type + sub type struct, which is keyed on an stype enum in radeon.h. Each stype can have a per-shader type subclassing (4 types supported, PS/VS/GS/FS), and also has a number of states per-subtype. So you have 256 constants per 4 shaders per one CONSTANT stype. The interface from the driver is changed to pass in the tuple, (stype, id, shader_type), and we look for this. If radeon_state_shader ever shows up on profile, it could use a hashtable based on stype/shader_type to speed things up. Signed-off-by: Dave Airlie <[email protected]>
* r600g: drop file I added by mistake in a previous commitDave Airlie2010-08-291-186/+0
|
* Revert "r600g: simplify states"Dave Airlie2010-08-277-7879/+1224
| | | | | | | | | This reverts commit bd25e23bf3740f59ce8859848c715daeb9e9821f. Apart from introducing a lot of hex magic numbers and being highly impenetable code, it causes lots of lockups on an average piglit run that always runs without lockups. Always run piglit before/after doing big things like this.
* nouveau: handle early initialization errorsMarcin Slusarz2010-08-261-1/+2
| | | | | | | handle very early errors in pipe_screen creation (failure of nouveau_screen_init in nv50_screen_create) Signed-off-by: Francisco Jerez <[email protected]>
* r600g: simplify statesJerome Glisse2010-08-257-1224/+7879
| | | | | | | | Directly build PM4 packet, avoid using malloc (no states are bigger than 128 dwords), remove unecessary informations, remove pm4 building in favor of prebuild pm4 packet. Signed-off-by: Jerome Glisse <[email protected]>
* r600g: Don't blindly unmap NULL->size.Henri Verbeet2010-08-221-1/+3
| | | | | There may actually be something mapped in that range, especially for large buffers like e.g. the GL Drawable.
* r600g: add occlusion query supportDave Airlie2010-08-204-10/+88
| | | | | Signed-off-by: Dave Airlie <[email protected]> Signed-off-by: Jerome Glisse <[email protected]>
* winsys/sw: use PIPE_TEXTURE_RECT if appropriateLuca Barbieri2010-08-201-1/+7
|
* r600g: kill event type magic number in winsysDave Airlie2010-08-172-3/+5
| | | | these events have names, use them.
* r600g: add user clip plane support.Dave Airlie2010-08-171-4/+14
| | | | | | | | | Apart from the fact that the radeon.h/r600_states.h editing is a nightmare, this wasn't so bad. passes piglit user-clip test now also trivial tests. Signed-off-by: Dave Airlie <[email protected]>
* r600g: drop libdrm_radeon linkDave Airlie2010-08-171-0/+186
|
* scons: Fix r600g build.Vinson Lee2010-08-141-0/+25
|
* r600g: Remove unnecessary headers.Vinson Lee2010-08-142-2/+0
|
* r300g: Remove unnecessary header.Vinson Lee2010-08-141-1/+0
|
* r600g: fix warning in the winsysDave Airlie2010-08-131-1/+1
|
* r600g: fix memory leaks running gears.Dave Airlie2010-08-131-0/+1
| | | | | I noticed gears memory usage was heading skywards, some r600 "states" aren't properly refcounted, and the ctx->state is never freed.
* svga: Remove unnecessary headers.Vinson Lee2010-08-101-2/+0
|
* r600g: avoid reemiting literal, avoid scheduling empty csJerome Glisse2010-08-102-30/+2
| | | | Signed-off-by: Jerome Glisse <[email protected]>
* r300g: generalize the way we ask for hyperzMarek Olšák2010-08-081-9/+26
| | | | | | | This makes it compatible with the modified DRM interface in drm-radeon-testing. Also, now you need to set RADEON_HYPERZ=1 to be able to use hyperz. It's not bug-free yet.
* r600g: finish multi target rendering supportJerome Glisse2010-08-061-6/+90
| | | | Signed-off-by: Jerome Glisse <[email protected]>
* Revert "r600g: don't use dynamic state allocation for states"Jerome Glisse2010-08-065-63/+299
| | | | | | | | | | | This reverts commit 9c949d4a4dd43b7889e13bdf683bcf211f049ced. Conflicts: src/gallium/drivers/r600/r600_context.h src/gallium/drivers/r600/r600_draw.c src/gallium/drivers/r600/r600_shader.c src/gallium/drivers/r600/r600_state.c
* r300g: do not emit GB_Z_PEQ_CONFIG on non-r500 if DRM < 2.6.0Marek Olšák2010-08-063-0/+12
|
* r600g: don't use dynamic state allocation for statesJerome Glisse2010-08-055-299/+63
| | | | | | | | | | Simplify state handly by avoiding state allocation. Next step is to allocate once for all context packet buffer and then avoid rebuilding pm4 packet each time (through use of combined crc) this would also avoid number of memcpy. Signed-off-by: Jerome Glisse <[email protected]>
* r300g: debug_print on startup whether we can use hyper-zMarek Olšák2010-08-051-2/+4
|
* r300g: implement hyper-z support. (v4)Dave Airlie2010-08-053-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | This implements fast Z clear, Z compression, and HiZ support for r300->r500 GPUs. It also allows cbzb clears when fast Z clears are being used for the ZB. It requires a kernel with hyper-z support. Thanks to Marek Olšák <[email protected]>, who started this off, and Alex Deucher at AMD for providing lots of hints. v2: squashed zmask ram size fix] squashed r300g/blitter: fix Z readback when compressed] v3: rebase around texture changes in master - .1 fix more bits v4: migrated to using u_mm in r300_texture to manage hiz/zmask rams consistently disabled HiZ when using OQ flush z-cache before turning hyper-z off update hyper-z state on dsa state change store depthclearvalue across cbzb clears and replace it afterwards. Signed-off-by: Dave Airlie <[email protected]>
* r600g: split pipe state creating/binding from hw state creationJerome Glisse2010-07-281-2/+2
| | | | | | | | | Split hw vs pipe states creation handling as hw states group doesn't match pipe state group exactly. Right now be dumb about that and rebuild all hw states on each draw call. More optimization on that side coming. Signed-off-by: Jerome Glisse <[email protected]>
* r300g: reject resources from handles which are not large enoughMarek Olšák2010-07-252-4/+9
| | | | | | | | The driver gets a buffer and its size in resource_from_handle. It computes the required minimum buffer size from given texture properties, and compares the two sizes. This is to early detect DDX bugs.
* xorg/vmwgfx: Implement early mode pruning based on max fb size.Thomas Hellstrom2010-07-231-0/+1
| | | | | | | | | Also move some initialization from screen init to pre-init, now that it is possible. Also import a new vmwgfx drm (1.3) header. Signed-off-by: Thomas Hellstrom <[email protected]>
* i915g: Rename winsys debug optionsJakob Bornecrantz2010-07-221-2/+2
|
* r600g: add family retrivalDave Airlie2010-07-211-0/+5
| | | | allow pipe driver to get the family of the gpu.
* r300g: do not make copies of constant buffers, emit them directlyMarek Olšák2010-07-162-12/+1
|
* r300g: rebuild winsys and command submission to support multiple contextsMarek Olšák2010-07-164-258/+275
|
* r300g: do not print a rejected CS if RADEON_DUMP_CS is not setMarek Olšák2010-07-102-4/+9
| | | | Also print relocation failures on non-debug builds too.
* r300g: store/return the stride for winsys_handle in winsysMarek Olšák2010-07-081-3/+8
|
* i915g: Add flag to not send commands to hwJakob Bornecrantz2010-07-043-1/+6
|
* i915g: If the kernel reject the batchbuffer print it then assertJakob Bornecrantz2010-07-041-13/+18
|
* r300g: move one flush from winsys to the contextMarek Olšák2010-06-301-14/+1
| | | | | | | This flush happens when changing the tiling flags, and it should really be done in the context. I hope this fixes FDO bug #28630.
* Merge branch 'gallium-drm-driver-drescriptor'Jakob Bornecrantz2010-06-2830-322/+114
|\ | | | | | | | | | | | | | | | | Conflicts: src/gallium/state_trackers/egl/x11/native_dri2.c src/gallium/state_trackers/egl/x11/native_x11.c src/gallium/state_trackers/egl/x11/native_x11.h src/gallium/state_trackers/xorg/xorg_driver.c src/gallium/winsys/radeon/drm/radeon_drm.c
| * i965g: Remove last references to drm_apiJakob Bornecrantz2010-06-242-2/+2
| |
| * gallium: Fix scons buildJakob Bornecrantz2010-06-241-1/+0
| |
| * r600g: Move bootstrap code to targetJakob Bornecrantz2010-06-242-29/+14
| |
| * nouveau: Move bootstrap code to targetsJakob Bornecrantz2010-06-233-17/+12
| | | | | | | | | | Well sorta, at least I removed the drm_api dependancy and the target can layer anything it wants to now.
| * nouveau: Rename winsys fileJakob Bornecrantz2010-06-233-4/+4
| |
| * gallium: Drop sw drm winsysJakob Bornecrantz2010-06-234-170/+0
| | | | | | | | Last user went away
| * i965g: Move bootstrap code to targetsJakob Bornecrantz2010-06-233-34/+13
| |
| * i965g: Rename winsys fileJakob Bornecrantz2010-06-233-2/+2
| |