summaryrefslogtreecommitdiff
path: root/src/gallium/winsys/r600
AgeCommit message (Collapse)Author
2010-08-30r600g: precompute some of the hw stateJerome Glisse
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 <jglisse@redhat.com>
2010-08-30r600g: fixup states generation in winsys.Dave Airlie
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 <airlied@redhat.com>
2010-08-29r600g: drop file I added by mistake in a previous commitDave Airlie
2010-08-27Revert "r600g: simplify states"Dave Airlie
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.
2010-08-25r600g: simplify statesJerome Glisse
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 <jglisse@redhat.com>
2010-08-22r600g: Don't blindly unmap NULL->size.Henri Verbeet
There may actually be something mapped in that range, especially for large buffers like e.g. the GL Drawable.
2010-08-20r600g: add occlusion query supportDave Airlie
Signed-off-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-17r600g: kill event type magic number in winsysDave Airlie
these events have names, use them.
2010-08-17r600g: add user clip plane support.Dave Airlie
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 <airlied@redhat.com>
2010-08-17r600g: drop libdrm_radeon linkDave Airlie
2010-08-14scons: Fix r600g build.Vinson Lee
2010-08-14r600g: Remove unnecessary headers.Vinson Lee
2010-08-13r600g: fix warning in the winsysDave Airlie
2010-08-13r600g: fix memory leaks running gears.Dave Airlie
I noticed gears memory usage was heading skywards, some r600 "states" aren't properly refcounted, and the ctx->state is never freed.
2010-08-10r600g: avoid reemiting literal, avoid scheduling empty csJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-06r600g: finish multi target rendering supportJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-06Revert "r600g: don't use dynamic state allocation for states"Jerome Glisse
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
2010-08-05r600g: don't use dynamic state allocation for statesJerome Glisse
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 <jglisse@redhat.com>
2010-07-28r600g: split pipe state creating/binding from hw state creationJerome Glisse
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 <jglisse@redhat.com>
2010-07-21r600g: add family retrivalDave Airlie
allow pipe driver to get the family of the gpu.
2010-06-28Merge branch 'gallium-drm-driver-drescriptor'Jakob Bornecrantz
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
2010-06-24r600g: Move bootstrap code to targetJakob Bornecrantz
2010-06-20r600g: handle DRM_API_HANDLE_TYPE_KMS in buffer_get_handleMarek Olšák
2010-05-30r600g: RS880 is r6xx-basedAlex Deucher
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
2010-05-29r600g: remove unused variableMarek Olšák
2010-05-29r600g: fix gallium function parametersMarek Olšák
2010-05-27r600g: adapt to latest interfaces changesMarek Olšák
- Wrapped the buffer and texture create/destroy/transfer/... functions using u_resource, which is then used to implement the resource functions. - Implemented texture transfers. I left the buffer and texture transfers separate because one day we'll need a special codepath for textures. - Added index_bias to the draw_*elements functions. - Removed nonexistent *REP and *FOR instructions. - Some pipe formats have changed channel ordering, so I've removed/fixed nonexistent ones. - Added stubs for create/set/destroy sampler views. - Added a naive implementation of vertex elements state (new CSO). - Reworked {texture,buffer}_{from,to}_handle. - Reorganized winsys files, removed dri,egl,python directories. - Added a new build target dri-r600.