History log of /external/mesa3d/src/gallium/drivers/r300/r300_render.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
6286d9810b7ebae588060370cd7a63c327478a2f 31-Jul-2012 Christoph Bumiller <e0425955@student.tuwien.ac.at> Revert "gallium: specify resource_resolve destination via a pipe_surface"

This reverts commit 5d5af7d359e0060fa00b90a8f04900b96f9058b0.

It turns out the issue this was supposed to fix merely counter-acted
a bug in the hardware driver that I wasn't aware of.

The resource_resolve is not supposed to do sRGB conversion, period.
(This would violate the requirement that source and destination must
be of the same format).
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
5d5af7d359e0060fa00b90a8f04900b96f9058b0 25-Jul-2012 Christoph Bumiller <e0425955@student.tuwien.ac.at> gallium: specify resource_resolve destination via a pipe_surface

The format member of pipe_surface may differ from that of the
pipe_resource, which is used to communicate, for instance, whether
sRGB encode should be enabled in the resolve operation or not.

Fixes resolve to sRGB surfaces in mesa/st when GL_FRAMEBUFFER_SRGB
is disabled.

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
9d6b46b1cd459ee6c0db4bfe518adb6928c5b59f 11-May-2012 Marek Olšák <maraeo@gmail.com> r300g/swtcl: move vertex buffer updates into set_vertex_buffers
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
735d0d93a7d748c2e0c0f13fcd6da0c13b678da9 11-May-2012 Marek Olšák <maraeo@gmail.com> r300g/swtcl: move index buffer updates from swtcl_draw_vbo into set_index_buffer
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
21b012d3b022c1c55358226f7bcc52fe50078123 11-May-2012 Marek Olšák <maraeo@gmail.com> r300g/swtcl: malloc vertex and index buffers (don't use radeon DRM to get them)

Vertex and index buffers are never used by hardware, only by Draw.
SWTCL chipsets usually have very little memory, so this might help
with stability and reliability.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
bf469f4edc60bd1c5fd770cb231b8d5ab801427f 24-Apr-2012 Marek Olšák <maraeo@gmail.com> gallium: add void *user_buffer in pipe_index_buffer

Adapted drivers: i915, llvmpipe, r300, r600, radeonsi, softpipe.

User index buffers have been disabled in nv30, nv50, nvc0 and svga to keep
things working.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
4552fd50d959ab99546cfa994f8ba5bdf5d66bc7 24-Apr-2012 Marek Olšák <maraeo@gmail.com> gallium: add void *user_buffer in pipe_vertex_buffer

This reduces CPU overhead in st_draw_vbo and removes a lot of unnecessary code
in that function which was required only to comply with the gallium interface,
but wasn't any useful really.

Adapted drivers: i915, llvmpipe, r300, softpipe.
No changes required in: r600, radeonsi.

User vertex buffers have been disabled in nv30, nv50, nvc0 and svga to keep
things working.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
0a6120244e66494db070ce875c0a464fbc5b15a1 26-Apr-2012 Marek Olšák <maraeo@gmail.com> winsys/radeon: simplify buffer map/unmap functions

The idea is not to use pb_map and pb_unmap wrappers, calling straight
into the winsys.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
ae799a4948ac1becb48568a274c2ada5d77aa07c 11-Apr-2012 Marek Olšák <maraeo@gmail.com> u_vbuf: pull u_vbuf_draw_max_vertex_count into r300g
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
a52b3338c6e51421e3836ae210cd98d9c1ec337b 10-Apr-2012 Marek Olšák <maraeo@gmail.com> u_vbuf: remove u_vbuf_resource
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
5ec7c28fdbc2e05d20b1a07cba1fe6ac3b6658f9 31-Mar-2012 Marek Olšák <maraeo@gmail.com> u_vbuf: override draw_vbo
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
2d03d4f4a365d7af5f4dac20700009152eba1682 31-Mar-2012 Marek Olšák <maraeo@gmail.com> u_vbuf: override set_vertex_buffers
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
31714ea4d5a20285f398286fe45b53d0609926dd 31-Mar-2012 Marek Olšák <maraeo@gmail.com> u_vbuf: override set_index_buffer

This makes u_vbuf_mgr call the driver instead of the other way around.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
6bede55241d8f672ba3d845e2ce1c00c7d65837e 03-Apr-2012 Marek Olšák <maraeo@gmail.com> r300g: initialize state & render functions before creating u_vbuf & u_blitter
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
da2123051c3923a2953cdd96f05ad684e7d3c8c3 31-Mar-2012 Marek Olšák <maraeo@gmail.com> r300g/swtcl: don't enter u_vbuf_mgr
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
6d89a795a551f63fc3fa0a9406cf7a9e8b6cb53d 12-Feb-2012 Marek Olšák <maraeo@gmail.com> r300g: assert-fail when calling resource_resolve

And reset the dest pointer to NULL after it.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
dc4c821f0817a3db716f965692fb701079f66340 10-Jan-2012 Marek Olšák <maraeo@gmail.com> Squash-merge branch 'gallium-clip-state'

Conflicts:
src/gallium/auxiliary/tgsi/tgsi_strings.c
src/mesa/state_tracker/st_atom_clip.c

commit d919791f2742e913173d6b335128e7d4c63c0840
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date: Fri Jan 6 17:59:22 2012 +0100

d3d1x: adapt to new clip state

commit cfec82bca3fefcdefafca3f4555285ec1d1ae421
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date: Fri Jan 6 14:16:51 2012 +0100

gallium/docs: update for clip state changes

commit c02bfeb81ad9f62041a2285ea6373bbbd602912a
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date: Fri Jan 6 14:21:43 2012 +0100

tgsi: add TGSI_PROPERTY_PROHIBIT_UCPS

commit d4e0a785a6a23ad2f6819fd72e236acb9750028d
Author: Brian Paul <brianp@vmware.com>
Date: Thu Jan 5 08:30:00 2012 -0700

tgsi: consolidate TGSI string arrays in new tgsi_strings.h

There was some duplication between the tgsi_dump.c and tgsi_text.c
files. Also use some static assertions to help catch errors when
adding new TGSI values.

v2: put strings in tgsi_strings.c file instead of the .h file.

Reviewed-by: Dave Airlie <airlied@redhat.com>

commit c28584ce0d8c62bd92c8f140729d344f88a0b3cd
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date: Fri Jan 6 12:48:09 2012 +0100

gallium: extend user_clip_plane_enable to apply to clip distances

commit f1d5016c07f786229ed057effbe55fbfd160b019
Author: Marek Olšák <maraeo@gmail.com>
Date: Fri Jan 6 02:39:09 2012 +0100

nvfx: adapt to new clip state

commit 6f6fa1c26bd19f797c1996731708e3569c9bfe24
Author: Marek Olšák <maraeo@gmail.com>
Date: Fri Jan 6 01:41:39 2012 +0100

st/mesa: fix DrawPixels with GL_DEPTH_CLAMP

commit c86ad730aa1c017788ae88a55f54071bf222be12
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date: Tue Jan 3 23:51:30 2012 +0100

nv50: adapt to new clip state

commit 3a8ae6ac243bae5970729dc4057fe02d992543dc
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date: Tue Jan 3 23:32:36 2012 +0100

nvc0: adapt to new clip state

commit 6243a8246997f8d2fcc69ab741a2c2dea080ff11
Author: Marek Olšák <maraeo@gmail.com>
Date: Thu Dec 29 01:32:51 2011 +0100

draw: initalize pt.user.planes in draw_init

This fixes a crash in glean/fpexceptions.

commit e3056524b19b56d473f4faff84ffa0eb41497408
Author: Marek Olšák <maraeo@gmail.com>
Date: Mon Dec 26 06:26:55 2011 +0100

svga: adapt to new clip state

commit c5bfa8b37d6d489271df457229081d6bbb51b4b7
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 14:11:51 2011 +0100

r600g: adapt to new clip state

commit f11890905362f62627c4a28a8255b76eb7de7df2
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 14:10:26 2011 +0100

r300g: adapt to new clip state

commit e37465327c79a01112f15f6278d9accc5bf3103f
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 12:39:16 2011 +0100

draw: adapt to new clip state

This adds a regression in the LLVM clipping path. Can anybody see anything
wrong with the code? It works for every other case, just glean/fpexceptions
crashes when doing the "Infinite clip plane test".

commit b474d2b18c72d965eefae4e427c269cba5ce6ba2
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 13:14:59 2011 +0100

u_blitter: don't save/set/restore clip state

commit 9dd240ea91f523a677af45e8d0adb9e661e28602
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 13:11:56 2011 +0100

gallium: don't cso_save/set/restore clip state

The enable bits are in the rasterizer state.

commit a4f7031179f5f4ad524b34b394214b984ac950f6
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 12:58:55 2011 +0100

gallium: default depth_clip to 1

depth_clip = !depth_clamp

commit fe21147a00ab90e549d63fe12ee4625c9c2ffcc3
Author: Marek Olšák <maraeo@gmail.com>
Date: Mon Dec 26 06:14:19 2011 +0100

trace,util: update state logging to new clip state

Also dump the other missing flags.

commit 2a3b96e84ac872dcc5bc1de049fe76bb58d64b23
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 10:43:43 2011 +0100

st/mesa: adapt to new clip state

commit b7b656a42fca19d7c85267f42649a206a85a2c72
Author: Marek Olšák <maraeo@gmail.com>
Date: Sat Dec 17 15:45:19 2011 +0100

gallium: move state enable bits from clip_state to rasterizer_state
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
488dd2c1912132fe7ee5e81b05fb64ba62a46098 07-Jan-2012 Brian Paul <brianp@vmware.com> gallium: make vbuf_render::set_primitive() return void

All the implementations of this function always return TRUE.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
94cd9d6be8980f28fdb6b7a8526814802a90f25d 20-Nov-2011 Marek Olšák <maraeo@gmail.com> r300g: set max_index to 0xffffff if there are no per-vertex attribs
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
03df791c6f0881e45a65106c22ccd28f77018fb3 20-Nov-2011 Marek Olšák <maraeo@gmail.com> u_vbuf_mgr: correctly compute max vertex count from hw buffers

And update r300g.

This is different from util_draw_max_index in how it obtains vertex elements
and that it doesn't have to call util_format_description due to additional
precomputed data in vertex elements.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
a18dad8055b452595a1ddece7da912ab67a850af 20-Nov-2011 Marek Olšák <maraeo@gmail.com> r300g: use u_vbuf_mgr to set/get the index buffer
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
496a3dab5f2eacd27bdaaa290bfbeced01d907de 19-Nov-2011 Marek Olšák <maraeo@gmail.com> r300g: always set VF_MIN_VTX_INDX to 0

It's not really useful to have non-zero there.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
21e3c585f7c59fa909f6bb485a99bad33119a186 23-Oct-2011 Marek Olšák <maraeo@gmail.com> r300g: don't call u_trim_pipe_prim in r300_swtcl_draw_vbo

This was dead code anyway.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
1350882e4950bc957e60e68a685b8fea08693e13 16-Oct-2011 Marek Olšák <maraeo@gmail.com> Revert "r300g: fix rendering with a non-zero index bias in draw_elements_immediate"

This reverts commit 5506f6ef966b8883e575a3f60ce96ad42ee6ffd2.

It breaks more things than it fixes.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
5506f6ef966b8883e575a3f60ce96ad42ee6ffd2 03-Oct-2011 Marek Olšák <maraeo@gmail.com> r300g: fix rendering with a non-zero index bias in draw_elements_immediate

NOTE: This is a candidate for the stable branches.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
b2e6ca8ec759eadd355d678856a49facf53cbd43 26-Sep-2011 Marek Olšák <maraeo@gmail.com> r300g: simplify the immd_is_good_idea function
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
28fb79891101c23c75982726c81112caa96f9275 25-Sep-2011 Marek Olšák <maraeo@gmail.com> u_vbuf_mgr: s/u_vbuf_mgr_/u_vbuf_
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
0b3270b9b72c2ca4fad172752045d8fa93c1ad6e 25-Sep-2011 Marek Olšák <maraeo@gmail.com> u_vbuf_mgr: cleanup original vs real vertex buffer arrays

It can now override both buffer offsets and strides in additions to resources.
Overriding buffer offsets was kinda hackish and could cause issues with
non-native vertex formats.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
6dd284f7c8fac22f64c13fdf9909094f5ec59086 16-Sep-2011 Dave Airlie <airlied@redhat.com> gallium: move clear paths from rgba to a pointer to a color union (v2)

This moves the gallium interface for clears from using a pointer to 4 floats to a pointer to a union of float/unsigned/int values.

Notes:
1. the value is opaque.
2. only when the value is used should it be interpretered according to
the surface format it is going to be used with.
3. float clears on integer buffers and vice-versa are undefined.

v2: fixed up vega and graw, dropped hunks that shouldn't have been in
patch.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
6b3bbf52b884ef4b5f0049623ec7154dd3c1dc31 05-Aug-2011 Marek Olšák <maraeo@gmail.com> r300g: adapt to the resource_resolve interface change
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
d1f66a9424d087f81d0040aafde033bd5cb1ca72 19-Jun-2011 Marek Olšák <maraeo@gmail.com> u_vbuf_mgr: make u_vbuf_mgr_draw_begin return flags in a bitmask
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
a4f4e24f0756f496cd5fa807ea70bcbee98a3134 18-Jun-2011 Marek Olšák <maraeo@gmail.com> r300g: rename AOS -> VARRAYS
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
7df7eaf8453bbc7bfd8d23b7808c92d30c62bf55 17-Jun-2011 Marek Olšák <maraeo@gmail.com> r300g: fix handling PREP_* options

This should fix rendering >65532 vertices using draw_arrays on r300-r400.

NOTE: This is a candidate for the 7.10 branch.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
578d4539ba72a9f52e0cb3f615bb04bf9407b574 09-Jun-2011 Marek Olšák <maraeo@gmail.com> r300g: fix draw_vbo splitting on r3xx-r4xx

NOTE: This is a candidate for the 7.10 branch.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
f48412c39f2ea3e2c25191814f519f84efec7a95 09-Jun-2011 Marek Olšák <maraeo@gmail.com> r300g: make translate_primitive table-driven
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
76056510bcd35b6b5607b572c0c0ff47b5c5e7e2 29-May-2011 Marek Olšák <maraeo@gmail.com> r300g: clear can be killed by render condition

Fixes piglit:
- NV_conditional_render/clear
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
d35aeff4bb0b03450b2c3c08bd7f84db5bf43283 18-Apr-2011 Marek Olšák <maraeo@gmail.com> r300g/winsys: rename r300->radeon and do a little cleanup

Renaming a few files, types, and functions.
Also make the winsys independent of r300g.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
5650a719f0c69c00954e47bd7a7b3e9433cb551d 08-Mar-2011 Marek Olšák <maraeo@gmail.com> r300g: decide whether a flush should be asynchronous when calling it

Thread offloading is not sometimes desirable, e.g. when mapping a buffer.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
65482f2c2b1c3456d0ca58a38d82c02a5d6d362c 05-Mar-2011 Marek Olšák <maraeo@gmail.com> r300g: implement instanced arrays
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
307408a4f89be2613cac39c5f0cd776a71039965 04-Mar-2011 Marek Olšák <maraeo@gmail.com> r300g: cleanup parameters of draw functions
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
a6314eb47f0c916c51362dfbd0f1db21e72745ee 02-Mar-2011 Marek Olšák <maraeo@gmail.com> r300g: require DRM 2.3.0 (kernel 2.6.34)

Running any older kernel is not recommended anyway.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
4609be44106274fa88cfdf935257dfbe51cb6039 01-Mar-2011 Marek Olšák <maraeo@gmail.com> r300g: update derived state before uploading vertex buffers

The function may invoke blitter, which invalidates vertex buffers.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
fd8d4b32ede6ebeae332539b71d38c36420e2654 18-Feb-2011 Marek Olšák <maraeo@gmail.com> r300g: remove tracking whether vertex buffers need to be validated

This was getting hard to maintain and didn't really bring any real benefits.
Instead, validate buffers when the vertex array state is dirty.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
eafb7f234d11a290b00dcaf5492b9bdad1cf5148 13-Feb-2011 Marek Olšák <maraeo@gmail.com> gallium: add usage parameter to pipe_buffer_create

And set a reasonable buffer usage flag everywhere instead of
just PIPE_USAGE_DEFAULT.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
56029ce52bafbc51b5b6660383767257b7770cd7 15-Feb-2011 Marek Olšák <maraeo@gmail.com> r300g: inline some of the pipe_buffer_map/unmap calls
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
a0c293ec117c8a6f471061076ba87e245759e0f6 14-Feb-2011 Marek Olšák <maraeo@gmail.com> r300g: put indices in CS if there's just a few of them and are in user memory
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
437583ea637ab402a06ae6683af6df35d52512d4 14-Feb-2011 Marek Olšák <maraeo@gmail.com> r300g: cleanup the draw functions
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
476cec37d615df7c7329ef74d4a7ea7200b2d8fb 14-Feb-2011 Marek Olšák <maraeo@gmail.com> r300g: do not create a user buffer struct for misaligned ushort indices fallback
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
d173f1ba8a3d77e46f73ecb00378ea9598fe2c68 14-Feb-2011 Marek Olšák <maraeo@gmail.com> r300g: fix fallback for misaligned ushort indices with num vertices >= 65535
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
3d5ac32f3bf95ceb9f3f03d6dedea5445ed35b18 14-Feb-2011 Marek Olšák <maraeo@gmail.com> r300g: consolidate emission of common draw regs
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
5a6ba08c21f24b14458a2084a170ddfbe8f5d793 14-Feb-2011 Marek Olšák <maraeo@gmail.com> r300g: emit 3D_LOAD_VBPNTR only when necessary

I thought I couldn't skip emitting this packet in some cases.
Well it looks like I can.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
5197b09beeb729637b915bc7b5d599227387d81e 14-Feb-2011 Marek Olšák <maraeo@gmail.com> r300g: remove the relocation after AARESOLVE_PITCH
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
98f344c5043c570ac1ae395ba0a75f3e3ad06dc8 11-Feb-2011 Marek Olšák <maraeo@gmail.com> r300g: fix warning
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
6ccab620a0e7364ab6c0d902b3ddf58ee988f7fa 23-Dec-2010 Marek Olšák <maraeo@gmail.com> r300g: import the last bits of libdrm and cleanup the whole thing

Based on Dave's branch.

The majority of this commit is a cleanup, mainly renaming things.
There wasn't much code to import, just ioctl calls.

Also done:
- implemented unsynchronized bo_map (important optimization!)
- radeon_bo_is_referenced_by_cs is no longer a refcount hack
- dropped the libdrm_radeon dependency

I'm surprised that this has resulted in less code in the end.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
56ba7e913fef0ea2b1bead582108f9ab3ab8263d 10-Feb-2011 Marek Olšák <maraeo@gmail.com> r300g: consolidate buffers and textures to r300_resource

Transfers and create/destroy are still handled separately.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
ce9c0d280104c8001a3ee360b07218ad3d260e46 10-Feb-2011 Marek Olšák <maraeo@gmail.com> r300g: simplify WRITE_RELOC API and cleanup
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
c95bc1224a4b20b9470ddcb37b5f78975991073b 07-Feb-2011 Marek Olšák <maraeo@gmail.com> r300g: use the new vertex buffer manager
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
8d0a540020f6389ca5efcd0e1fbef45a4a1f5b6a 29-Jan-2011 Marek Olšák <maraeo@gmail.com> r300g: rework vertex format fallback

1) Only translate the [min_index, max_index] range.
2) Upload translated vertices via the uploader.
3) Rename valid_vertex_buffer[] to real_vertex_buffer[]
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
3332229b3ba7a183a9f120ae4bbf9865e96df110 09-Jan-2011 Marek Olšák <maraeo@gmail.com> r300g: fix crash when flushing ZMASK

https://bugs.freedesktop.org/show_bug.cgi?id=32912

The fix is to call update_derived_state before user buffer uploads.
I've also moved some code around.

Unfortunately, there are still some ZMASK-related bugs which cause
misrendering, i.e. flushing doesn't always work and glean/fbo fails.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
1f0348c4a2ba4f8ca812a2daccf3b01c3f984ef1 04-Dec-2010 Marek Olšák <maraeo@gmail.com> r300g: rework command submission and resource space checking

The motivation behind this rework is to get some speed by reducing
CPU overhead. The performance increase depends on many factors,
but it's measurable (I think it's about 10% increase in Torcs).

This commit replaces libdrm's radeon_cs_gem with our own implemention.
It's optimized specifically for r300g, but r600g could use it as well.
Reloc writes and space checking are faster and simpler than their
counterparts in libdrm (the time complexity of all the functions
is O(1) in nearly all scenarios, thanks to hashing).
(libdrm's radeon_bo_gem is still being used in the driver.)

It works like this:

cs_add_reloc(cs, buf, read_domain, write_domain) adds a new relocation and
also adds the size of 'buf' to the used_gart and used_vram winsys variables
based on the domains, which are simply or'd for the accounting purposes.
The adding is skipped if the reloc is already present in the list, but it
accounts any newly-referenced domains.

cs_validate is then called, which just checks:
used_vram/gart < vram/gart_size * 0.8
The 0.8 number allows for some memory fragmentation. If the validation
fails, the pipe driver flushes CS and tries do the validation again,
i.e. it validates only that one operation. If it fails again, it drops
the operation on the floor and prints some nasty message to stderr.

cs_write_reloc(cs, buf) just writes a reloc that has been added using
cs_add_reloc. The read_domain and write_domain parameters have been removed,
because we already specify them in cs_add_reloc.

The space checking has been tested by putting small values in vram/gart_size
variables.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
be1af4394e060677b7db6bbb8e3301e38a3363da 26-Dec-2010 Marek Olšák <maraeo@gmail.com> r300g: derive user buffer sizes at draw time

This only uploads the [min_index, max_index] range instead of [0, userbuf size],
which greatly speeds up user buffer uploads.

This is also a prerequisite for atomizing vertex arrays in st/mesa.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
31afa7616e3c11e9874f3297ac66ebdd50a67186 27-Dec-2010 Marek Olšák <maraeo@gmail.com> r300g: skip buffer validation of upload buffers when appropriate

because the upload buffers are reused for subsequent draw operations.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
33e0b726e8837a3456e224d169170ead25ee2fc5 28-Dec-2010 Marek Olšák <maraeo@gmail.com> r300g: rename aos to vertex arrays
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
7e752760d410e72cc766691bee207729f28a920a 25-Dec-2010 Marek Olšák <maraeo@gmail.com> r300g: simplify the code for buffer uploads
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
9c448817f7d62ae885019d816a7ecbc2c7bc34c1 25-Dec-2010 Marek Olšák <maraeo@gmail.com> r300g: user index buffers are always aligned
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
b10bff11350014e1bb49b0ce18704fdd66e850c0 25-Dec-2010 Marek Olšák <maraeo@gmail.com> r300g: increase the size of upload buffers
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
aedbf05d31c1a8d7d3c2742524abf2db2422b2fe 23-Dec-2010 Marek Olšák <maraeo@gmail.com> r300g: use a simpler fallback for misaligned ushort indices with triangles

If 'start' is odd, render the first triangle with indices embedded
in the command stream, which adds 3 to 'start' and makes it even.
Then continue with the fast path.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
ec51092a72e2dff1e9b1362d813fe4691cda89b7 19-Dec-2010 Marek Olšák <maraeo@gmail.com> gallium: remove unused 'buf' parameter in pipe_buffer_unmap
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
237880463d5168cad8df0bae6018b5fd76617777 19-Dec-2010 Marek Olšák <maraeo@gmail.com> r300g: optimize the fallback for misaligned ushort indices
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
d8b861987d32444586e786cb39c6ef1c7498ae9b 07-Dec-2010 Marek Olšák <maraeo@gmail.com> r300g: also revalidate the SWTCL vertex buffer after its reallocation
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
4953ba6a717ad1d3aa4426d147b52d05932c47ab 07-Dec-2010 Marek Olšák <maraeo@gmail.com> r300g: validate buffers only if any of bound buffers is changed

This prevents needless buffer validation (CS space checking).
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
66d45567b4e2c6f2585789b68667e6c00b7567e1 04-Dec-2010 Marek Olšák <maraeo@gmail.com> r300g: optimize looping over atoms

This also removes DBG_STATS (the stats can be obtained with valgrind instead).
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
6947e5254889b99bfba7104d15e9526a7bc1cdfa 04-Dec-2010 Marek Olšák <maraeo@gmail.com> r300g: cleanup winsys
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
9f7f093090c45278162a03f10e147fac688eee6f 03-Dec-2010 Marek Olšák <maraeo@gmail.com> r300g: one more r500_index_bias_supported leftover
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
536d52702034a03d94866cb6cf8fc05502860320 03-Dec-2010 Marek Olšák <maraeo@gmail.com> r300g: add capability bit index_bias_supported

.. instead of calling r500_index_bias_supported(..) every draw call.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
4c7001462607e6e99e474d6271dd481d3f8f201c 02-Dec-2010 Roland Scheidegger <sroland@vmware.com> gallium: support for array textures and related changes

resources have a array_size parameter now.
get_tex_surface and tex_surface_destroy have been renamed to create_surface
and surface_destroy and moved to context, similar to sampler views (and
create_surface now uses a template just like create_sampler_view). Surfaces
now really should only be used for rendering. In particular they shouldn't be
used as some kind of 2d abstraction for sharing a texture. offset/layout fields
don't make sense any longer and have been removed, width/height should go too.
surfaces and sampler views now specify a layer range (for texture resources),
layer is either array slice, depth slice or cube face.
pipe_subresource is gone array slices (or cube faces) are now treated the same
as depth slices in transfers etc. (that is, they use the z coord of the
respective functions).

Squashed commit of the following:

commit a45bd509014743d21a532194d7b658a1aeb00cb7
Merge: 1aeca28 32e1e59
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Dec 2 04:32:06 2010 +0100

Merge remote branch 'origin/master' into gallium-array-textures

Conflicts:
src/gallium/drivers/i915/i915_resource_texture.c
src/gallium/drivers/i915/i915_state_emit.c
src/gallium/drivers/i915/i915_surface.c

commit 1aeca287a827f29206078fa1204715a477072c08
Merge: 912f042 6f7c8c3
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Dec 2 00:37:11 2010 +0100

Merge remote branch 'origin/master' into gallium-array-textures

Conflicts:
src/gallium/state_trackers/vega/api_filters.c
src/gallium/state_trackers/vega/api_images.c
src/gallium/state_trackers/vega/mask.c
src/gallium/state_trackers/vega/paint.c
src/gallium/state_trackers/vega/renderer.c
src/gallium/state_trackers/vega/st_inlines.h
src/gallium/state_trackers/vega/vg_context.c
src/gallium/state_trackers/vega/vg_manager.c

commit 912f042e1d439de17b36be9a740358c876fcd144
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Dec 1 03:01:55 2010 +0100

gallium: even more compile fixes after merge

commit 6fc95a58866d2a291def333608ba9c10c3f07e82
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Dec 1 00:22:26 2010 +0100

gallium: some fixes after merge

commit a8d5ffaeb5397ffaa12fb422e4e7efdf0494c3e2
Merge: f7a202f 2da02e7
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Nov 30 23:41:26 2010 +0100

Merge remote branch 'origin/master' into gallium-array-textures

Conflicts:
src/gallium/drivers/i915/i915_state_emit.c
src/gallium/state_trackers/vega/api_images.c
src/gallium/state_trackers/vega/vg_context.c

commit f7a202fde2aea2ec78ef58830f945a5e214e56ab
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Nov 24 19:19:32 2010 +0100

gallium: even more fixes/cleanups after merge

commit 6895a7f969ed7f9fa8ceb788810df8dbcf04c4c9
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Nov 24 03:07:36 2010 +0100

gallium: more compile fixes after merge

commit af0501a5103b9756bc4d79167bd81051ad6e8670
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Nov 23 19:24:45 2010 +0100

gallium: lots of compile fixes after merge

commit 0332003c2feb60f2a20e9a40368180c4ecd33e6b
Merge: 26c6346 b6b91fa
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Nov 23 17:02:26 2010 +0100

Merge remote branch 'origin/master' into gallium-array-textures

Conflicts:
src/gallium/auxiliary/gallivm/lp_bld_sample.c
src/gallium/auxiliary/util/u_blit.c
src/gallium/auxiliary/util/u_blitter.c
src/gallium/auxiliary/util/u_inlines.h
src/gallium/auxiliary/util/u_surface.c
src/gallium/auxiliary/util/u_surfaces.c
src/gallium/docs/source/context.rst
src/gallium/drivers/llvmpipe/lp_rast.c
src/gallium/drivers/nv50/nv50_state_validate.c
src/gallium/drivers/nvfx/nv04_surface_2d.c
src/gallium/drivers/nvfx/nv04_surface_2d.h
src/gallium/drivers/nvfx/nvfx_buffer.c
src/gallium/drivers/nvfx/nvfx_miptree.c
src/gallium/drivers/nvfx/nvfx_resource.c
src/gallium/drivers/nvfx/nvfx_resource.h
src/gallium/drivers/nvfx/nvfx_state_fb.c
src/gallium/drivers/nvfx/nvfx_surface.c
src/gallium/drivers/nvfx/nvfx_transfer.c
src/gallium/drivers/r300/r300_state_derived.c
src/gallium/drivers/r300/r300_texture.c
src/gallium/drivers/r600/r600_blit.c
src/gallium/drivers/r600/r600_buffer.c
src/gallium/drivers/r600/r600_context.h
src/gallium/drivers/r600/r600_screen.c
src/gallium/drivers/r600/r600_screen.h
src/gallium/drivers/r600/r600_state.c
src/gallium/drivers/r600/r600_texture.c
src/gallium/include/pipe/p_defines.h
src/gallium/state_trackers/egl/common/egl_g3d_api.c
src/gallium/state_trackers/glx/xlib/xm_st.c
src/gallium/targets/libgl-gdi/gdi_softpipe_winsys.c
src/gallium/targets/libgl-gdi/libgl_gdi.c
src/gallium/tests/graw/tri.c
src/mesa/state_tracker/st_cb_blit.c
src/mesa/state_tracker/st_cb_readpixels.c

commit 26c6346b385929fba94775f33838d0cceaaf1127
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Aug 2 19:37:21 2010 +0200

fix more merge breakage

commit b30d87c6025eefe7f6979ffa8e369bbe755d5c1d
Merge: 9461bf3 1f1928d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Aug 2 19:15:38 2010 +0200

Merge remote branch 'origin/master' into gallium-array-textures

Conflicts:
src/gallium/drivers/llvmpipe/lp_rast.c
src/gallium/drivers/llvmpipe/lp_rast_priv.h
src/gallium/drivers/r300/r300_blit.c
src/gallium/drivers/r300/r300_screen_buffer.c
src/gallium/drivers/r300/r300_state_derived.c
src/gallium/drivers/r300/r300_texture.c
src/gallium/drivers/r300/r300_texture.h
src/gallium/drivers/r300/r300_transfer.c
src/gallium/drivers/r600/r600_screen.c
src/gallium/drivers/r600/r600_state.c
src/gallium/drivers/r600/r600_texture.c
src/gallium/drivers/r600/r600_texture.h
src/gallium/state_trackers/dri/common/dri1_helper.c
src/gallium/state_trackers/dri/sw/drisw.c
src/gallium/state_trackers/xorg/xorg_exa.c

commit 9461bf3cfb647d2301364ae29fc3084fff52862a
Merge: 17492d7 0eaccb3
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Jul 15 20:13:45 2010 +0200

Merge commit 'origin/master' into gallium-array-textures

Conflicts:
src/gallium/auxiliary/util/u_blitter.c
src/gallium/drivers/llvmpipe/lp_rast.c
src/gallium/drivers/llvmpipe/lp_surface.c
src/gallium/drivers/r300/r300_render.c
src/gallium/drivers/r300/r300_state.c
src/gallium/drivers/r300/r300_texture.c
src/gallium/drivers/r300/r300_transfer.c
src/gallium/tests/trivial/quad-tex.c

commit 17492d705e7b7f607b71db045c3bf344cb6842b3
Author: Roland Scheidegger <sroland@vmware.com>
Date: Fri Jun 18 10:58:08 2010 +0100

gallium: rename element_offset/width fields in views to first/last_element

This is much more consistent with the other fields used there
(first/last level, first/last layer).
Actually thinking about removing the ugly union/structs again and
rename first/last_layer to something even more generic which could also
be used for buffers (like first/last_member) without inducing headaches.

commit 1b717a289299f942de834dcccafbab91361e20ab
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Jun 17 14:46:09 2010 +0100

gallium: remove PIPE_SURFACE_LAYOUT_LINEAR definition

This was only used by the layout field of pipe_surface, but this
driver internal stuff is gone so there's no need for this driver independent
layout definition neither.

commit 10cb644b31b3ef47e6c7b55e514ad24bb891fac4
Merge: 5691db9 c85971d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Jun 17 12:20:41 2010 +0100

Merge commit 'origin/master' into gallium-array-textures

Conflicts:
src/gallium/docs/source/glossary.rst
src/gallium/tests/graw/fs-test.c
src/gallium/tests/graw/gs-test.c

commit 5691db960ca3d525ce7d6c32d9c7a28f5e907f3b
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Jun 17 11:29:03 2010 +0100

st/wgl: fix interface changes bugs

commit 2303ec32143d363b46e59e4b7c91b0ebd34a16b2
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Jun 16 19:42:32 2010 +0100

gallium: adapt code to interface changes...

commit dcae4f586f0d0885b72674a355e5d56d47afe77d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Jun 16 19:42:05 2010 +0100

gallium: separate depth0 and array_size in the resource itself.

These fields are still mutually exclusive (since no 3d array textures exist)
but it ultimately seemed to error-prone to adapt all code accept the new
meaning of depth0 (drivers stick that into hardware regs, calculate mipmap
sizes etc.). And it isn't really cleaner anyway.
So, array textures will have depth0 of 1, but instead use array_size,
3D textures will continue to use depth0 (and have array_size of 1). Cube
maps also will use array_size to indicate their 6 faces, but since all drivers
should just be fine by inferring this themselves from the fact it's a cube map
as they always used to nothing should break.

commit 621737a638d187d208712250fc19a91978fdea6b
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Jun 16 17:47:38 2010 +0100

gallium: adapt code to interface changes

There are still usages of pipe_surface where pipe_resource should be used,
which should eventually be fixed.

commit 2d17f5efe166b2c3d51957c76294165ab30b8ae2
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Jun 16 17:46:14 2010 +0100

gallium: more interface changes

In particular to enable usage of buffers in views, and ability to use a
different pipe_format in pipe_surface.
Get rid of layout and offset parameter in pipe_surface - the former was
not used in any (public) code anyway, and the latter should either be computed
on-demand or driver can use subclass of pipe_surface.
Also make create_surface() use a template to be more consistent with
other functions.

commit 71f885ee16aa5cf2742c44bfaf0dc5b8734b9901
Merge: 3232d11 8ad410d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Jun 14 14:19:51 2010 +0100

Merge commit 'origin/master' into gallium-array-textures

Conflicts:
src/gallium/auxiliary/util/u_box.h
src/gallium/drivers/nv50/nv50_surface.c
src/gallium/drivers/nvfx/nvfx_surface.c
src/gallium/drivers/r300/r300_blit.c
src/gallium/drivers/r300/r300_texture.c
src/gallium/drivers/r300/r300_transfer.c
src/gallium/drivers/r600/r600_blit.c
src/gallium/drivers/r600/r600_screen.h
src/gallium/include/pipe/p_state.h

commit 3232d11fe3ebf7686286013c357b404714853984
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Jun 14 11:40:04 2010 +0100

mesa/st: adapt to interface changes

still need to fix pipe_surface sharing
(as that is now per-context).
Also broken is depth0 handling - half the code assumes
this is also used for array textures (and hence by extension
of that cube maps would have depth 6), half the code does not...

commit f433b7f7f552720e5eade0b4078db94590ee85e1
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Jun 14 11:35:52 2010 +0100

gallium: fix a couple of bugs in interface chnage fixes

commit 818366b28ea18f514dc791646248ce6f08d9bbcf
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:42:11 2010 +0200

targets: adapt to interface changes

Yes even that needs adjustments...

commit 66c511ab1682c9918e0200902039247793acb41e
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:41:13 2010 +0200

tests: adapt to interface changes

Everything needs to be fixed :-(.

commit 6b494635d9dbdaa7605bc87b1ebf682b138c5808
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:39:50 2010 +0200

st: adapt non-rendering state trackers to interface changes

might not be quite right in all places, but they really don't want
to use pipe_surface.

commit 00c4289a35d86e4fe85919ec32aa9f5ffe69d16d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:38:48 2010 +0200

winsys: adapt to interface changes

commit 39d858554dc9ed5dbc795626fec3ef9deae552a0
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:26:54 2010 +0200

st/python: adapt to interface changes

don't think that will work, sorry.

commit 6e9336bc49b32139cec4e683857d0958000e15e3
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:26:07 2010 +0200

st/vega: adapt to interface changes

commit e07f2ae9aaf8842757d5d50865f76f8276245e11
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:25:56 2010 +0200

st/xorg: adapt to interface changes

commit 05531c10a74a4358103e30d3b38a5eceb25c947f
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:24:53 2010 +0200

nv50: adapt to interface changes

commit 97704f388d7042121c6d496ba8c003afa3ea2bf3
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:24:45 2010 +0200

nvfx: adapt to interface changes

commit a8a9c93d703af6e8f5c12e1cea9ec665add1abe0
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:24:01 2010 +0200

i965g: adapt to interface changes

commit 0dde209589872d20cc34ed0b237e3ed7ae0e2de3
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:22:38 2010 +0200

i915g: adapt to interface changes

commit 5cac9beede69d12f5807ee1a247a4c864652799e
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:20:58 2010 +0200

svga: adapt to interface changes

resource_copy_region still looking fishy.
Was not very suited to unified zslice/face approach...

commit 08b5a6af4b963a3e4c75fc336bf6c0772dce5150
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:20:01 2010 +0200

rbug: adapt to interface changes

Not sure if that won't need changes elsewhere?

commit c9fd24b1f586bcef2e0a6e76b68e40fca3408964
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:19:31 2010 +0200

trace: adapt to interface changes

commit ed84e010afc5635a1a47390b32247a266f65b8d1
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:19:21 2010 +0200

failover: adapt to interface changes

commit a1d4b4a293da933276908e3393435ec4b43cf201
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:19:12 2010 +0200

identity: adapt to interface changes

commit a8dd73e2c56c7d95ffcf174408f38f4f35fd2f4c
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:18:55 2010 +0200

softpipe: adapt to interface changes

commit a886085893e461e8473978e8206ec2312b7077ff
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:18:44 2010 +0200

llvmpipe: adapt to interface changes

commit 70523f6d567d8b7cfda682157556370fd3c43460
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:18:14 2010 +0200

r600g: adapt to interface changes

commit 3f4bc72bd80994865eb9f6b8dfd11e2b97060d19
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:18:05 2010 +0200

r300g: adapt to interface changes

commit 5d353b55ee14db0ac0515b5a3cf9389430832c19
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:17:37 2010 +0200

cell: adapt to interface changes

not even compile tested

commit cf5d03601322c2dcb12d7a9c2f1745e2b2a35eb4
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:14:59 2010 +0200

util: adapt to interface changes

amazing how much code changes just due to some subtle interface changes?

commit dc98d713c6937c0e177fc2caf23020402cc7ea7b
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:12:40 2010 +0200

gallium: more interface fail, docs

this also changes flush_frontbuffer to use a pipe_resource instead of
a pipe_surface - pipe_surface is not meant to be (or at least no longer)
an abstraction for standalone 2d images which get passed around.
(This has also implications for the non-rendering state-trackers.)

commit 08436d27ddd59857c22827c609b692aa0c407b7b
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Jun 10 17:42:52 2010 +0200

gallium: fix array texture interface changes bugs, docs

commit 4a4d927609b62b4d7fb9dffa35158afe282f277b
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Jun 3 22:02:44 2010 +0200

gallium: interface changes for array textures and related cleanups

This patch introduces array textures to gallium (note they are not immediately
usable without the associated changes to the shader side).
Also, this abandons pipe_subresource in favor of using level and layer
parameters since the distinction between several faces (which was part of
pipe_subresource for cube textures) and several z slices (which were not part
of pipe_subresource but instead part of pipe_box where appropriate for 3d
textures) is gone at the resource level.
Textures, be it array, cube, or 3d, now use a "unified" set of parameters,
there is no distinction between array members, cube faces, or 3d zslices.
This is unlike d3d10, whose subresource index includes layer information for
array textures, but which considers all z slices of a 3d texture to be part
of the same subresource.
In contrast to d3d10, OpenGL though reuses old 2d and 3d function entry points
for 1d and 2d array textures, respectively, which also implies that for instance
it is possible to specify all layers of a 2d array texture at once (note that
this is not possible for cube maps, which use the 2d entry points, although
it is possible for cube map arrays, which aren't supported yet in gallium).
This should possibly make drivers a bit simpler, and also get rid of mutually
exclusive parameters in some functions (as z and face were exclusive), one
potential downside would be that 3d array textures could not easily be supported
without reverting this, but those are nowhere to be seen.

Also along with adjusting to new parameters, rename get_tex_surface /
tex_surface_destroy to create_surface / surface_destroy and move them from
screen to context, which reflects much better what those do (they are analogous
to create_sampler_view / sampler_view_destroy).

PIPE_CAP_ARRAY_TEXTURES is used to indicate if a driver supports all of this
functionality (that is, both sampling from array texture as well as use a range
of layers as a render target, with selecting the layer from the geometry shader).
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
ffb732d8bd51f0a40379590a6485de2a56a2a306 14-Nov-2010 Marek Olšák <maraeo@gmail.com> r300g: fix rendering with no vertex elements

Fixes glsl-vs-point-size, although I meant to fix glsl-novertexdata.
Since swrast fails glsl-novertexdata too, I guess it's a core issue.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
ed7cb289b3d0641a63e7e91374fb29f47321331a 14-Nov-2010 Marek Olšák <maraeo@gmail.com> r300g: clean up redundancy in draw functions
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
d4b2de13bc652cd134826801ada48d0bb88a8258 16-Sep-2010 Marek Olšák <maraeo@gmail.com> r300g/swtcl: fix CS overrun

https://bugs.freedesktop.org/show_bug.cgi?id=29901
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
428dc6d7d2cf6a5da37a2ea7ce436cf521b009a2 13-Sep-2010 Marek Olšák <maraeo@gmail.com> r300g/swtcl: unlock VBO after draw_flush

https://bugs.freedesktop.org/show_bug.cgi?id=29901
https://bugs.freedesktop.org/show_bug.cgi?id=30132
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
0392e48867c27f2aa445c5c9b35f4a52ecef2f2d 13-Sep-2010 Marek Olšák <maraeo@gmail.com> r300g: fix SWTCL

https://bugs.freedesktop.org/show_bug.cgi?id=29901
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
c3c5646b93eb20013d2739c7966da7ddad532877 10-Sep-2010 Marek Olšák <maraeo@gmail.com> r300g: skip rendering if CS space validation fails

radeon_cs_space_check flushes the pipe context on failure, retries
the validation, and returns -1 if it fails again. At that point, there is
nothing we can do, so let's skip draw operations instead of getting stuck
in an infinite loop.

This code path ideally should never be hit.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
317680c6fbb898c56dac523cde756cb892481b97 10-Sep-2010 Marek Olšák <maraeo@gmail.com> r300g: remove u_upload_flush from r300_draw_arrays

This a leftover probably and is unnecessary, since we flush u_upload_mgr
in r300_flush.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
d3ca8a4eddcecced82a41201cf59a732f0b8e18b 03-Sep-2010 Marek Olšák <maraeo@gmail.com> r300g: skip draw calls with no vertex elements, fixing hardlocks
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
22f6026324f63c142925244ff575fefc29a90389 25-Aug-2010 Chia-I Wu <olv@lunarg.com> gallium: Use draw_set_index_buffer and others.

Update all drivers to use draw_set_index_buffer,
draw_set_mapped_index_buffer, and draw_vbo. Remove
draw_set_mapped_element_buffer and draw_set_mapped_element_buffer_range.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
cb925970eeade17016f59497d2123e4e8a447164 24-Aug-2010 Marek Olšák <maraeo@gmail.com> r300g: reset the index bias to 0 at the end of CS
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
b48f20dab8a93fe187f6e6d9d7544f07ed8148db 24-Aug-2010 Vinson Lee <vlee@vmware.com> r300g: Remove unused variable.

Fixes this GCC warning.
r300_render.c: In function 'r300_draw_flush_vbuf':
r300_render.c:988: warning: unused variable 'r300_render'
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
eb430b0e948caf02b9f4095d0e1435880073c2aa 23-Aug-2010 Dave Airlie <airlied@redhat.com> r300g: avoid stall in no-tcl drawing when mapping vbo

the current code reuses the same vbo over and over, however after a flush
we'd stall and wait for mapping on the vbo when we should just fire and forget.

On a gears test this brings me from ~620 to ~750 on my rv530 in swtcl mode.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
0d699e8ee930c6c7e0f8abff14bf37e7f67807fe 14-Aug-2010 Marek Olšák <maraeo@gmail.com> r300g: separate num_cs_end_dwords out from prepare_for_rendering
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
ab0a3f30b8070a0204c023f8ea5375f1d3f710fd 07-Aug-2010 Marek Olšák <maraeo@gmail.com> r300g: fix cbzb clears when hyperz is off
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
6eb2a7fbafd49e75b6cbbee57f23dda63eff73ef 07-Jul-2010 Dave Airlie <airlied@redhat.com> r300g: implement hyper-z support. (v4)

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 <maraeo@gmail.com>, 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 <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
d8d7a3e0f9629a220e2394dd7c6634f2d6a93e20 29-Jul-2010 Marek Olšák <maraeo@gmail.com> r300g/swtcl: fix crash in ETQW and minor fixups

The Draw flush inside r300_flush was the culprit.

Also, no need to flush Draw when changing a state since the flush is
already inside swtcl_draw_vbo.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
3f4680d8e229d87e62972d0632c577873944d89d 29-Jul-2010 Marek Olšák <maraeo@gmail.com> r300g/swtcl: fix crash after the draw_vbo merge
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
92f9b05499de9f0e8eda11d1a75ba7955c9cc602 29-Jul-2010 Chia-I Wu <olv@lunarg.com> gallium: Avoid void pointer arithmetic.

This fixes fdo bug #29286.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
a57f84251926045a3358822d0fd92ca95a4f0fde 16-Jul-2010 Chia-I Wu <olv@lunarg.com> gallium: Keep only pipe_context::draw_vbo.

That is, remove pipe_context::draw_arrays, pipe_context::draw_elements,
pipe_context::draw_arrays_instanced,
pipe_context::draw_elements_instanced,
pipe_context::draw_range_elements.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
6d28bf917fb1d741d90fd3f05c22769376021fca 15-Jul-2010 Chia-I Wu <olv@lunarg.com> gallium: Implement draw_vbo and set_index_buffer for all drivers.

Some drivers define a generic function that is called by all drawing
functions. To implement draw_vbo for such drivers, either draw_vbo
calls the generic function or the prototype of the generic function is
changed to match draw_vbo.

Other drivers have no such generic function. draw_vbo is implemented by
calling either draw_arrays and draw_elements.

For most drivers, set_index_buffer does not mark the state dirty for
tracking. Instead, the index buffer state is emitted whenever draw_vbo
is called, just like the case with draw_elements. It surely can be
improved.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
4eaf591d1504f61e131f77f01711d27a75d02e90 18-Jul-2010 Dave Airlie <airlied@redhat.com> r300g: u_upload optimisation

fix vb/ib uploads
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
68744f9325b7101756c39ff3f19acb502f534a69 17-Jul-2010 Vinson Lee <vlee@vmware.com> r300g: Remove unnecessary header.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
fe3caa91d3f637bf9cf9f9e7adb992aa8c7ef8e4 14-Jul-2010 Marek Olšák <maraeo@gmail.com> r300g: rebuild winsys and command submission to support multiple contexts
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
50db6dba65560c1fb598d495d7d4103019bbbea5 13-Jul-2010 Marek Olšák <maraeo@gmail.com> r300g: extend and clean up debug logging
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
f5804e64b41e167bd5578df86e05329dd06c35d6 12-Jul-2010 Marek Olšák <maraeo@gmail.com> r300g: rework the draw_rectangle hook

It is a lot simplier, cleaner, and more stable now.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
8c836f7f740c6f74511c727c7bed0680ddba9974 12-Jul-2010 Marek Olšák <maraeo@gmail.com> r300g: implement fast color clear

An initial implementation made by Dave Airlie.

For it to be used, a color-only clear must be invoked and exactly one
point-sampled render target must be set. The render target must be
macrotiled (for us to overcome alignment issues) and bpp must be either
16 or 32.

I can't see a difference in performance. :(

Conflicts:

src/gallium/drivers/r300/r300_blit.c
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
78e8a8765f435bf0902d62afbcb3b8d68a0b716f 12-Jul-2010 Marek Olšák <maraeo@gmail.com> r300g: clear and copy a resource with a rectangular point sprite

With an ordinary quad, the pixels on the main diagonal are computed
and stored twice, which is somewhat inefficient and might not work well
with specialized clear codepaths.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
0864851e2763291ff1ea2ceaa3c6f16b14abd362 12-Jul-2010 Marek Olšák <maraeo@gmail.com> r300g: do not use immediate mode if there is a VBO in VRAM

And other minor fixups.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
8350d1d6f18d5c48fab4949d8b3c087b8390a49c 22-Jun-2010 Marek Olšák <maraeo@gmail.com> r300g: immediate mode cleanup
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
69adebf5945d994485c584c183c148fc2c1373ed 24-Jun-2010 Marek Olšák <maraeo@gmail.com> r300g: move AA registers into the new AA state
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
d84bf6d44dcac8cf8babb6ddce05cbc8f76db24c 23-Jun-2010 Marek Olšák <maraeo@gmail.com> r300g: index buffer range checking
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
eb7ef433bbbeabda963e74adf0ef61c47883f292 22-Jun-2010 Marek Olšák <maraeo@gmail.com> r300g: optimize the immediate mode emission path a bit
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
6771622e22399e8ed2346b830aefadf885fcec10 17-Jun-2010 Marek Olšák <maraeo@gmail.com> r300g: fix surface leaks
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
e41ad8d2c5cac28cbdc3c1c234f1149c91a8d803 16-Jun-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Fix up resolve.

Yay for old code.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
68cefb423a1bd7cb2bee6375cae8e9c46b1211c5 16-Jun-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Finish resolve function.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
e163fc0b15c80172fb2615fc04d7fc7bdc0d25c3 14-Jun-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Add resource resolve function.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
ae182296ce28f1efc8a08d9ddcf6b8a79b1bc14b 12-Jun-2010 Marek Olšák <maraeo@gmail.com> r300g: replace r300_cs_info with simplier get_cs_free_dwords
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
cb17f5ee752d07d82e9b079c6bda9d89e51c7108 12-Jun-2010 Marek Olšák <maraeo@gmail.com> r300g: move two-sided stencilref fallback to its own file
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
aa5422327d6f49d8940c2b933c2342ad8968032c 12-Jun-2010 Marek Olšák <maraeo@gmail.com> r300g: move index buffer translate functions to their new home
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
028459b0bf2bb778b55493f9b23ab7f2c9b355a0 08-Jun-2010 Marek Olšák <maraeo@gmail.com> r300g: add fallback for unaligned/unsupported vertex stride/offset/format

There is a problem though, the translate module cannot emit half float
vertices.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
fccfb7b16512a36424370dc1942cdedd3d1c208a 08-Jun-2010 Marek Olšák <maraeo@gmail.com> r300g: skip rendering for unsupported vertex formats instead of aborting

The next step is to replace skipping by an actual fallback.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
eb2a1521cfa1e56f462f035f482e7a99c18a4b5f 26-Apr-2010 Marek Olšák <maraeo@gmail.com> r300g: workaround index bias on chipsets that do not support it
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
53beea574ffb19156e86d891f54316f9fabdd62a 02-Jun-2010 Marek Olšák <maraeo@gmail.com> r300g: use the stored GEM domain in add_buffer/write_reloc

I admit blitting to/from GTT is actually enforced in this commit,
texture transfers are now damned fast!
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
bb45a15168e6c6678776fea5d8d0085454089260 02-Jun-2010 Marek Olšák <maraeo@gmail.com> r300g: use r300_buffer_domain everywhere
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
76034aaf655134c71e1ec619085c46251d037720 26-May-2010 Marek Olšák <maraeo@gmail.com> r300g: decouple drawing code and two-sided stencil refvalue fallback

It's now more separate from the rest of the driver and it can be disabled
by commenting out just 1 line. Well, I couldn't make the previous version
work with SW TCL reliably, that's the reason of this little rework.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
1345c5bf94dd848bdb601061c7ae654dadc6e542 26-May-2010 Marek Olšák <maraeo@gmail.com> r300g/swtcl: handle large index count properly

This fixes piglit/draw-elements.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
3a6fd21917b7fb5a96bb60cd963f481ac5f989a6 26-May-2010 Marek Olšák <maraeo@gmail.com> r300g/swtcl: force vertex prefetching for non-indexed primitives
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
55a6d3743436fb811dfa1825aabff82fb6610c04 26-May-2010 Marek Olšák <maraeo@gmail.com> r300g/swtcl: move emitting AOS to prepare_for_rendering
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
500160a3c9b0a777586c60abd3d136a5c30937f4 26-May-2010 Marek Olšák <maraeo@gmail.com> r300g/swtcl: vbo transfer sanity checks
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
a81730cb3205330b5fa1c5a80dc9f0c6dad6cb04 26-May-2010 Marek Olšák <maraeo@gmail.com> r300g: add get_cs_info winsys entrypoint, abandon check_cs
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
e1c117d87bd1c77c6093a7a77b7994a8313b084e 25-May-2010 Marek Olšák <maraeo@gmail.com> r300g: add r300_init_render_functions, remove r300_render.h
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
c1ef21833a6dfd763fae97cd7f3bf545b8b7e87e 16-May-2010 Marek Olšák <maraeo@gmail.com> r300g/swtcl: put emitting max index to the right place

This fixes CS rejections in openarena.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
412cdcd479df13c27242090d6e0727389eb2a0da 16-May-2010 Marek Olšák <maraeo@gmail.com> r300g/swtcl: flush draw to avoid the rejection of CS
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
dca9624201319950aa4c78ad5cc7dd7121e2b347 16-May-2010 Marek Olšák <maraeo@gmail.com> r300g/swtcl: call update_derived_state only once per draw-call
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
b224264c9db83a7b8df222ba3625b0f23874e30d 16-May-2010 Vinson Lee <vlee@vmware.com> r300g: Move code after declarations.

Fixes SCons build.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
ee6255052cd3adb5074916a62c8f59a421c7fa2d 16-May-2010 Marek Olšák <maraeo@gmail.com> r300g/swtcl: fix provoking vertex
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
6c3afad62b05a70a855d73a70f1f249b60f2ebf3 15-May-2010 Marek Olšák <maraeo@gmail.com> r300g: silence warnings
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
3bb1724f3796ad799a93c319e03eae48c0114f1e 12-May-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Add VBO dumper for SW TCL.

Commented out, not easily enabled. *Very* noisy.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
505bea835501d834b0c999700d06280aa57cb6b1 12-May-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Immediate mode won't work with SW TCL right now.

This could be done later of course. SW TCL should have a much different
threshold because it's much more worth it.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
da180a8d34a3d17345d71b215a7d20f24fe4b078 07-May-2010 Marek Olšák <maraeo@gmail.com> r300g: consolidate common render code into one function

This reduces redundant code by moving:
- CS space reservation
- buffer validation
- dirty state emission
- index bias emission
- AOS emission
into r300_prepare_for_rendering.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
740e50c60f03d194aafab93d5251699964800979 05-May-2010 Brian Paul <brianp@vmware.com> gallium: rename draw() to draw_elements() in vbuf code

Now we have draw_elements() and draw_arrays() to be consistent with the
pipe_context drawing functions.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
847a24c011fda1fa21995a3e54848f15e75dccc9 27-Apr-2010 Marek Olšák <maraeo@gmail.com> r300g: compensate for non-atomized emit_query_end in the CS

And reserve a little more space just in case.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
b1ceadf2ee11a961530645eec40624211298382d 27-Apr-2010 Marek Olšák <maraeo@gmail.com> r300g: reserve CS space for index offset

This has caused CS overflow since the commit
671f1e1229877d459cfd76e2cf5ea89c8d881036.

TA3D works here again.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
671f1e1229877d459cfd76e2cf5ea89c8d881036 26-Apr-2010 Marek Olšák <maraeo@gmail.com> r300g: support index bias on r500 and DRM 2.3.0
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
54bcee1e40aae9dee750f901f85fd08706bd9321 26-Apr-2010 Marek Olšák <maraeo@gmail.com> r300g: support rendering more than 65535 vertices in one batch on r500

and disable batch splitting on these chipsets.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
b9e637e8cf1cba99c138f5ca2d79ae5afefb1020 26-Apr-2010 Marek Olšák <maraeo@gmail.com> r300g: force prefetch for non-indexed vertices
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
a6171a9dd99713266091982215bf1008c9ac8e64 20-Apr-2010 José Fonseca <jfonseca@vmware.com> Merge branch 'gallium-index-bias'
dfadf5a579281c6dd4ecdd4ecd5568fbbb1de17e 19-Apr-2010 José Fonseca <jfonseca@vmware.com> r300g: Adapt for index bias interface change.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
24ceef7a6969ccb2243e7bb32f86d6429d9689b9 18-Apr-2010 Marek Olšák <maraeo@gmail.com> r300g: more solid is_buffer_referenced implementation

This fixes crash from 7a1b5c937fa32968a04a11649e456a1ef8c5b442,
and also removes the unused "map" pointer.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
7a1b5c937fa32968a04a11649e456a1ef8c5b442 18-Apr-2010 Marek Olšák <maraeo@gmail.com> r300g: do not tell st that a buffer is referenced by hw

It saves a few libdrm calls and unnecessary flushes.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
0b4df63609e9fb25319debd56142a90b11d75671 18-Apr-2010 Marek Olšák <maraeo@gmail.com> r300g: various other cleanups

It seems to me that the resource management code is the most blurry.

Also some of my notes about fastfill are wrong, removing them too.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
5b609badf7682da2377c5e67ab827b2dc3a06b9b 18-Apr-2010 Marek Olšák <maraeo@gmail.com> r300g: add debugging options "notiling" and "noimmd" (for testing)

notiling = Disable texture tiling
noimmd = Disable immediate mode (this optimization was really worth it!)
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
146879284c6b844f35afe3a3ef3330726afbe8ac 11-Apr-2010 Marek Olšák <maraeo@gmail.com> r300g: revisit some assertions and fix potential failures

* Turn some assertions to error messages.
* At most 16 vertex elements can be set, others are ignored.
* Rasterize at most 8 vertex-shader generic outputs, others are ignored.
This includes fog and WPOS.
* Unknown shader semantic names are ignored.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
287c94ea4987033f9c99a2f91c5750c9083504ca 10-Apr-2010 Keith Whitwell <keithw@vmware.com> Squashed commit of the following:

commit 0189cb2fde9f5d7326fd4bfbc2e52db4cce73b3e
Author: Keith Whitwell <keithw@vmware.com>
Date: Sat Apr 10 12:48:43 2010 +0100

gallium: don't use generic get_transfer func for textures

It doesn't know and can't fill in the stride value.

commit 65bc6f88fd9ce8ff90175b250e580bef2739ea35
Author: Chia-I Wu <olv@lunarg.com>
Date: Sat Apr 10 13:49:34 2010 +0800

i915g: Initialize screen surface function.

commit eb56e64986790aa2fa35534ce652b78656b0c3c5
Merge: f8b0a7f e7f1e5c
Author: Keith Whitwell <keithw@vmware.com>
Date: Sat Apr 10 00:38:43 2010 +0100

Merge commit 'origin/master' into gallium-resources

Conflicts:
src/gallium/drivers/r300/r300_texture.c

commit f8b0a7f6a3a98fd36ce90a81073ec8c8f09b684c
Merge: a3c9980 f43c679
Author: Keith Whitwell <keithw@vmware.com>
Date: Sat Apr 10 00:35:09 2010 +0100

Merge commit 'origin/master' into gallium-resources

Conflicts:
src/gallium/drivers/r300/r300_texture.c

commit a3c99807de37dc2c072f1d75ed3a11da333bc9a1
Author: unknown <michal@.(none)>
Date: Fri Apr 9 18:51:39 2010 +0200

scons: Add missing sources.

commit 927cec79cedb457efa9e6f335727cfcb8e4908e2
Author: Roland Scheidegger <sroland@vmware.com>
Date: Fri Apr 9 18:07:56 2010 +0200

gallium: fix another compile warning after merge. Hmpf.

commit 52953cd7b0e51deafecb812bdc40f9e45f9ac62a
Author: Roland Scheidegger <sroland@vmware.com>
Date: Fri Apr 9 18:02:11 2010 +0200

gallium: fix comment

commit 7c8763aa6cfc74adf1ea49c2bab25ca17b32575f
Author: unknown <michal@.(none)>
Date: Fri Apr 9 18:05:20 2010 +0200

util: Fix type cast.

commit 9d0086411a104b7cc9297aac0d1f82853118d7bf
Author: unknown <michal@.(none)>
Date: Fri Apr 9 18:04:33 2010 +0200

libgl-gdi: Use proper unwrap functions for resources.

commit 251a5cdd18ba31c690ef61f133dfc65cd4a45cf8
Author: Roland Scheidegger <sroland@vmware.com>
Date: Fri Apr 9 17:51:23 2010 +0200

gallium: more comments fixup

commit 8f3f9d5e1e9c0de98a3dfb19e81250d2c32ee4e9
Author: Roland Scheidegger <sroland@vmware.com>
Date: Fri Apr 9 17:48:18 2010 +0200

gallium: another fix after merge

commit 41f00a32ee5be91512c048bacb89ede0e04bc08d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Fri Apr 9 17:44:30 2010 +0200

gallium: more pipe_texture/resource fixes after merge

commit faf53328d1154c51d8a59513f2bfcae62272b0bf
Author: Roland Scheidegger <sroland@vmware.com>
Date: Fri Apr 9 17:44:24 2010 +0200

gallium: fix comments for changed USAGE flags

commit fdcb17bea4b0798d316b56deea69832f41142adf
Author: Roland Scheidegger <sroland@vmware.com>
Date: Fri Apr 9 16:40:07 2010 +0200

gallium/pb: pb uses PB_USAGE_ flags, not PIPE_TRANSFER_ (same value anyway)

commit c95f7278ecc6db417ec1053279f2a8172c47aee9
Author: Keith Whitwell <keithw@vmware.com>
Date: Fri Apr 9 13:44:35 2010 +0100

llvmpipe: fix merge glitches

commit 28f8b8683175149a381be5eff263d4c20568bce7
Author: Keith Whitwell <keithw@vmware.com>
Date: Fri Apr 9 13:41:39 2010 +0100

r300g: update after merge for pipe_resources

commit 248c93cbc066ba6e3fadd94c5fcf3bdbb373d8fd
Author: Keith Whitwell <keithw@vmware.com>
Date: Fri Apr 9 13:41:20 2010 +0100

st/mesa: fix old pipe_texture usages

commit a563b1c5c2cb57b3ef28a3654d9b477460d13ced
Author: Keith Whitwell <keithw@vmware.com>
Date: Fri Apr 9 13:40:56 2010 +0100

r300g: remove unused variable

commit 734500131d828c9dfd68c5fa26b3e6b07e086d2d
Author: Keith Whitwell <keithw@vmware.com>
Date: Fri Apr 9 13:40:36 2010 +0100

nv50: fix compiler warning

commit efd402e13037e5c3e29759fa5b1c754c6d65d0e2
Merge: fec8a1d 5452615
Author: Keith Whitwell <keithw@vmware.com>
Date: Fri Apr 9 13:33:57 2010 +0100

Merge commit 'origin/master' into gallium-resources

Conflicts:
src/gallium/drivers/cell/ppu/cell_screen.c
src/gallium/drivers/cell/ppu/cell_texture.c
src/gallium/drivers/llvmpipe/lp_screen.c
src/gallium/drivers/r300/r300_context.c
src/gallium/drivers/r300/r300_render.c
src/gallium/drivers/r300/r300_screen.c
src/gallium/drivers/r300/r300_state.c
src/gallium/drivers/r300/r300_texture.c
src/gallium/drivers/r300/r300_transfer.c
src/gallium/state_trackers/egl/common/egl_g3d.h
src/gallium/state_trackers/egl/kms/native_kms.c
src/gallium/state_trackers/egl/x11/native_dri2.c
src/gallium/state_trackers/egl/x11/native_ximage.c

commit fec8a1db13fac04ef56f6ece799d1f20aa3011db
Author: Marek Olšák <maraeo@gmail.com>
Date: Sat Apr 3 07:58:34 2010 +0200

util: fix assertion failures in pipe_buffer_flush_mapped_range

commit 1ff3984c2edce9927744f3cce3e7b07778990170
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Apr 8 17:44:54 2010 +0200

docs: fix transfer_map description

commit 20bf14be8ac6438cb1afa38212e306fc06a5ed40
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Apr 8 14:39:13 2010 +0100

util: fix up several uses of pipe_map_buffer_range

This function used to return a pointer to where the start of the
actual buffer would have been, even though only the requested range is
being mapped.

In the resources change, the function was modified to use a transfer
internally, and started returning the pointer to the beginning of the
transfer, ie the mapped range.

Some users of the function were changed to reflect this new behaviour,
some were not. Since then the function has reverted to its original
behaviour, matching master.

This change restores some of the users of the map_buffer_range helper
to expect the old/original behaviour.

commit 33179a86058b68b518f40971030db337dc26fe6e
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Apr 8 14:38:54 2010 +0100

mesa/st: fix up several uses of pipe_map_buffer_range

This function used to return a pointer to where the start of the
actual buffer would have been, even though only the requested range is
being mapped.

In the resources change, the function was modified to use a transfer
internally, and started returning the pointer to the beginning of the
transfer, ie the mapped range.

Some users of the function were changed to reflect this new behaviour,
some were not. Since then the function has reverted to its original
behaviour, matching master.

This change restores some of the users of the map_buffer_range helper
to expect the old/original behaviour.

commit 3f5363d4dc9d7ad48467ae82d58d5f3d9bd10698
Author: Keith Whitwell <keithw@vmware.com>
Date: Wed Apr 7 17:26:52 2010 +0100

util: map_range and flush_range have offsets relative to start of buffer

commit 7eb1bfb97a790c73188d6b616d54fb3849e69b1e
Author: Keith Whitwell <keithw@vmware.com>
Date: Wed Apr 7 17:26:08 2010 +0100

nv50: fix compiler warning

commit d040daff0642dd791ac38e9b353dc251b03fc873
Author: Keith Whitwell <keithw@vmware.com>
Date: Wed Apr 7 17:25:58 2010 +0100

nvfx: fix compiler warning

commit 49ec01dffb8e99ab3ff8f856287db7b4df3efed6
Author: Chia-I Wu <olv@lunarg.com>
Date: Mon Apr 5 11:58:53 2010 +0800

mesa/es: Fixes for gallium-resources.

commit 47c87ada452be45766928a01b6d69da63e3a5f5e
Author: Marek Olšák <maraeo@gmail.com>
Date: Sat Apr 3 05:19:20 2010 +0200

r300g: fix transfers for textures created from winsys handles

commit 5f2701fddaef9c18d85c049311c2819c49cc1ae0
Author: Luca Barbieri <luca@luca-barbieri.com>
Date: Sat Apr 3 03:52:38 2010 +0200

nouveau: don't use the staging usage

Maybe it could make sense, but for now dynamic is enough.

None of these avoid uncached reads from GART on AGP cards.

commit 0db20fa49e008f35911007fa7ed9be1d678a2161
Author: Luca Barbieri <luca@luca-barbieri.com>
Date: Sat Apr 3 03:27:19 2010 +0200

i965: add brw_resource.c to Makefile

commit b94f3e7389cbd1b6465de3c04e8059ce73f1ea1f
Author: Luca Barbieri <luca@luca-barbieri.com>
Date: Sat Apr 3 01:48:33 2010 +0200

nouveau: fix for gallium-resources

commit a01ff99a19986e6beb7903431e60a074945b09bc
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Apr 1 19:26:35 2010 +0200

gallium: fix missing includes

commit 26aeded562ce947a6deeb867fe22bf8daf7b1a1a
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Apr 1 19:19:18 2010 +0200

gallium: remove video interface and related stuff

These interfaces weren't quite was needed, and building disabled for a while.
Some code actually build since some branch merge, and were now not fully
converted to gallium-resources.
See http://www.mail-archive.com/mesa3d-dev@lists.sourceforge.net/msg09619.html
for a discussion of this. Video related work is done in origin/pipe-video
branch.

commit c64285aea45997a276fb141d7badc8a04f617c7c
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Apr 1 18:45:54 2010 +0200

python: fixes for resource changes

doesn't look quite ok yet, but sort of compiles.

commit 03d4d5a41f5cf158a358fd705c695e1c987a328f
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Apr 1 18:34:46 2010 +0200

gallium: s/u_box_orgin_2d/u_box_origin_2d

commit 2444f023142bcaf7bd310b44794580f273254408
Author: Marek Olšák <maraeo@gmail.com>
Date: Thu Apr 1 03:26:50 2010 +0200

r300g: fix segfault when the transfers functions are used

Still broken.

commit 6f09bf4066ab651b323c131bb07978e700519805
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Apr 1 00:05:12 2010 +0200

r300g: compile fixes

commit 76711ff40d2092f9ef03d452de7458c4e76d9246
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Apr 1 00:04:47 2010 +0200

nvfx: more compile fixes

commit c5d2e90c9cc119447a447dc04a4bce4ab91fc671
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Mar 31 23:18:50 2010 +0200

gallium: more mostly merge fallout fixes...

commit fbc3722696790857f4adc936190406e74dffd969
Merge: 86d9225 d97f696
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Mar 31 22:09:35 2010 +0200

Merge commit 'origin/master' into gallium-resources

Conflicts:
src/gallium/drivers/cell/ppu/cell_screen.c
src/gallium/drivers/i915/i915_buffer.c
src/gallium/drivers/i915/i915_context.h
src/gallium/drivers/i915/i915_resource_texture.c
src/gallium/drivers/i915/i915_screen.c
src/gallium/drivers/i915/i915_state_emit.c
src/gallium/drivers/i965/brw_resource_texture.c
src/gallium/drivers/llvmpipe/lp_screen.c
src/gallium/drivers/llvmpipe/lp_setup.c
src/gallium/drivers/nvfx/nv30_fragtex.c
src/gallium/drivers/nvfx/nv40_fragtex.c
src/gallium/drivers/nvfx/nvfx_miptree.c
src/gallium/drivers/nvfx/nvfx_screen.c
src/gallium/drivers/nvfx/nvfx_transfer.c
src/gallium/drivers/r300/r300_state.c
src/gallium/drivers/svga/svga_screen_texture.c
src/gallium/state_trackers/dri/common/dri_drawable.c
src/gallium/state_trackers/dri/common/dri_screen.c
src/gallium/state_trackers/dri/common/dri_st_api.h
src/gallium/state_trackers/dri/drm/dri1.c
src/gallium/state_trackers/dri/drm/dri1.h
src/gallium/state_trackers/dri/drm/dri2.c
src/gallium/state_trackers/python/st_device.c
src/gallium/state_trackers/python/st_sample.c
src/mesa/state_tracker/st_cb_clear.c
src/mesa/state_tracker/st_cb_drawpixels.c
src/mesa/state_tracker/st_cb_readpixels.c
src/mesa/state_tracker/st_cb_texture.c
src/mesa/state_tracker/st_extensions.c

commit 86d9225d19d194eebbbe95b059695697c3307d15
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Mar 31 19:06:06 2010 +0200

gallium: more fixes for bind changes

commit a215ef0606347e34669a580ec8df93ede7e46399
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Mar 31 18:48:36 2010 +0200

gallium/docs: some updates for bind changes

commit c6c7e6746cbc7af59f7972719ed76f43e8ac16fc
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 30 20:24:26 2010 +0200

gallium: more bind change compile fixes

commit a83fa1504b78180524a5eb454ae186741a27cdf8
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 30 17:37:13 2010 +0200

compile fixes

commit 30dc8afcd243d6a160571bac5f06d773e54a4196
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 30 16:56:28 2010 +0200

fix some merge issues

commit 30aa617fee11fe50c0a9c2f33fcd120a474f5e34
Merge: 1dde609 3a830bc
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 30 16:09:45 2010 +0200

Merge commit 'origin/gallium-buffer-usage-cleanup' into gallium-resources

Conflicts:
src/gallium/drivers/nouveau/nouveau_screen.c
src/gallium/drivers/nvfx/nvfx_transfer.c
src/gallium/winsys/drm/radeon/core/radeon_drm_buffer.c

commit 1dde609ad6c9d2dfa0a5f7167f3c5bcf023b7c4d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Mar 24 02:35:00 2010 +0100

docs: some updates for pipe_resource

commit f236f9660d31b936f54b64ae07e569f8637067bd
Author: Luca Barbieri <luca@luca-barbieri.com>
Date: Wed Mar 24 01:31:28 2010 +0100

nvfx: fix for gallium-resources

It seems to work with basic applications but almost surely needs more work.

In particular, it probably shouldn't use PIPE_BUFFER_USAGE_* flags
and should use PIPE_TRANSFER_* in several places.

Also, we probably don't want the vtable indirect calls and that ought
to be replaced with something better instead.

commit 5a136ad7b63768cb9a753eff8686c44592e62325
Author: Luca Barbieri <luca@luca-barbieri.com>
Date: Wed Mar 24 01:31:19 2010 +0100

nv50: fix build in gallium-resources

Not actually tested.

Also needs next patch tee to actually build, this is just the nv50 part
split from the rest.

commit 3a830bc4a3f0f60c925b9434845a6bcad9a913c5
Author: Keith Whitwell <keithw@vmware.com>
Date: Tue Mar 23 14:00:52 2010 -0700

st/egl: fix up for binding flags

commit c6a80dc32ef17bc972d4137ce7444ebed4d28ebb
Author: Keith Whitwell <keithw@vmware.com>
Date: Tue Mar 23 13:52:15 2010 -0700

r300: restore 4k alignment for oqbo buffers

commit e75a8d5ea9e0ffcf67bc858e08937e10b4fc74ba
Author: Keith Whitwell <keithw@vmware.com>
Date: Tue Mar 23 13:00:07 2010 -0700

gallium: bind flags

commit 1f5b509543a7f399835fd9edf27c18e1643fab7d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 23 19:32:21 2010 +0100

i965g: scons compile fixes

commit 2c385f8f905ec794d9119c05c6293e0b1b9b565a
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 23 19:20:33 2010 +0100

nouveau: drm compile fix

commit b285086ebd5132b47c340897c4622cc9fbd286cb
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 23 18:36:19 2010 +0100

r300g: pipe_resource compile fixes

bring back mistakenly deleted radeon_buffer.h
plus some more

commit 7810606f423ef2f51f0a14b919640c2fd2c931aa
Author: Michal Krol <michal@vmware.com>
Date: Tue Mar 23 16:21:03 2010 +0100

softpipe: Map GS constants, too.

commit 366f1176fb89d2b1978da6cfe60000b76bbc7338
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 23 15:51:52 2010 +0100

failover: update for pipe_resources

commit 615f44d70d293704ed821bc0b21fcfe6e363895d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 23 15:51:02 2010 +0100

identity: remove double is_resource_reference assignment

commit 7008586020395905ddfff333d02b3893de369796
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 23 15:50:32 2010 +0100

trace: compile fix

commit 058c5697bda4c9cf7b49d26ee27a34586544efaa
Merge: dd7ba13 b33fd3c
Author: Keith Whitwell <keithw@vmware.com>
Date: Tue Mar 23 06:40:39 2010 -0700

Merge commit 'origin/gallium-resources' into gallium-buffer-usage-cleanup

Conflicts:
src/gallium/state_trackers/vega/api_filters.c
src/mesa/state_tracker/st_cb_drawpixels.c

commit b33fd3ce3daf2921a895367d0ed3fd9c718a8575
Author: Michal Krol <michal@vmware.com>
Date: Mon Mar 22 21:03:26 2010 +0100

gallium: Usage parameter of get_transfer/transfer_inline_write is a bitfield.

commit 9c1162d9d656062a490a529997def3f674cc61fc
Author: Michal Krol <michal@vmware.com>
Date: Mon Mar 22 20:50:49 2010 +0100

scons: Update file lists after gallium-resources changes.

commit af9793ab9e5386b150d6b25c0d1978fdc67172e4
Author: Michal Krol <michal@vmware.com>
Date: Mon Mar 22 20:04:39 2010 +0100

gallium: Do not use `template` for formal parameter names.

commit dc2e12d714c444af9ff1acdd5a7e91408b116c99
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 22:41:34 2010 +0000

ws/nouveau: remove pipe_texture reference

commit b94c72329f1be85887d40d49b0586979da469d77
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 22:40:41 2010 +0000

ws/xlib: remove pipe_buffer reference in comment

commit 0a2af3eeae7de1d1cb433f0a2c35136b115f9920
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 22:39:34 2010 +0000

st/vega: clean up reference to pipe_texture

commit 437ce98daae46be5d532fbb04c7cbf4a503c1623
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 22:39:02 2010 +0000

st/python: begin conversion to pipe_resources, much more to do

commit 1b02e1ee3e5e87774f0c9e5f0e1898b7f8de1b16
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 22:29:34 2010 +0000

st/xorg: update for pipe_resources

commit eb39977fe7a1d9f0c3f4f2d4303a93c2c613cc3b
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 22:23:51 2010 +0000

st/dri: update for pipe_resources

commit e447aeff597a4d8c0f5de25854c14c99f2cc138c
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 22:23:36 2010 +0000

st/egl: update for pipe_resources

commit e4cc48da8fdbd7d521257a6d7cd10e6fc5aa1a65
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 22:08:44 2010 +0000

r300: drop use of R300 DONT SYNC flag

commit 129a83ab4d32e44ded5faea3f86ae5e1e62cddb6
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 22:08:17 2010 +0000

pipebuffer: use transfer flag

commit 575b35ee6b683d77095ef21c573c1de207107e79
Merge: f29ac73 9fc6c8b
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 22:03:25 2010 +0000

Merge commit 'origin/master' into gallium-resources

Conflicts:
src/gallium/drivers/llvmpipe/lp_texture.c
src/gallium/drivers/r300/r300_context.c
src/gallium/drivers/r300/r300_texture.c
src/gallium/winsys/drm/radeon/core/radeon_buffer.h

commit f29ac73f3f626d5779a627b7fa6fecdb60a35aab
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 18:37:25 2010 +0000

cell: attempt to convert to pipe_resources

Can't even compile test this driver.

commit 484b1947f4af81bab60b41f21c3c23ea6f67488c
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 17:25:50 2010 +0000

nvfx: restore usage of pipe_winsys

The interface that cannot be killed...

commit ac76ac6eb30f4f9aa9f5733d60358b357925953a
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 17:25:10 2010 +0000

nv50: fix warning

commit 9683f4423449fa5acf6c019c571223650473bd82
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 17:14:31 2010 +0000

util: restore u_simple_screen, nouveau still relies on it

commit 961cbcb62232689c959965384c6aa9b8eca697c1
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 16:51:54 2010 +0000

nouveau: convert nvfx and nv50 to pipe_resources

Compile tested only.

This was a deeper change than I was hoping for, due to the
layering of the pipe_texture implementation in each driver on
top of a shared pipe_buffer implementation in the shared code.

Have modified the shared code to act as a set of convenience
routines operating on nouveau_bo objects.

Each driver now uses the u_resource_vtbl technique to split the
implementation of pipe_resources between the existing miptree code
for textures and a new, minimal buffer implementation in each
driver.

Eventually these should be combined, not least because APIs are now
allowing things like binding buffer resources as textures and render
targets.

commit 18ba74016db13b23282f5033ee37b628a12ee566
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 10:02:54 2010 +0000

r300: fix compilation after merge

Also build r300 by default.

commit eb9c0175c8e4baca3fcb0b8364f83ceba9d74e0d
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 09:59:49 2010 +0000

st/vega: fix up after merge

commit ea8dd1d4ae7b58c9315c3491046ef3852ddd3377
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 09:59:44 2010 +0000

aux: remove unused piperesource helpers

commit be7af29d3ad1a10409b0ea689d882cf30a4e1d62
Merge: d22c2c6 12deb9e
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 09:54:53 2010 +0000

Merge commit 'origin/master' into gallium-resources

Conflicts:
src/gallium/auxiliary/cso_cache/cso_context.c
src/gallium/auxiliary/cso_cache/cso_context.h
src/gallium/drivers/r300/r300_context.c
src/gallium/drivers/r300/r300_render.c
src/gallium/drivers/r300/r300_state.c
src/gallium/drivers/r300/r300_state_derived.c
src/gallium/state_trackers/vega/api_filters.c
src/gallium/state_trackers/vega/image.c
src/gallium/state_trackers/vega/image.h
src/gallium/state_trackers/vega/mask.c
src/gallium/state_trackers/vega/mask.h
src/gallium/state_trackers/vega/paint.c
src/gallium/state_trackers/vega/paint.h
src/gallium/state_trackers/vega/renderer.c
src/gallium/state_trackers/vega/renderer.h
src/gallium/state_trackers/vega/shader.c
src/gallium/state_trackers/vega/vg_context.h
src/gallium/state_trackers/vega/vg_tracker.c
src/mesa/state_tracker/st_manager.c

commit d22c2c6cb23a063e3334a165d0c5c3d73f05d234
Author: Keith Whitwell <keithw@vmware.com>
Date: Sat Mar 20 11:48:54 2010 +0000

drm/r300: update for r300g pipe_resources conversion

Remove old files that related to pipe_buffers but weren't being
built. Hopefully this is correct.

commit f07b2c836958bee5796899123eca4ed05ac6242b
Author: Keith Whitwell <keithw@vmware.com>
Date: Sat Mar 20 11:47:03 2010 +0000

r300: convert to pipe_resources

Do a very shallow conversion - basically keeping the existing
buffer and texture code intact and using a vtbl struct
inside our resource struct to select between the two implementations.

The buffer and texture treatments could be further merged without
much effort, but try to keep the existing code working at this point.

commit feca9c3ca62daaf0d8745370106d4e3b22340c49
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Mar 18 06:00:34 2010 +0000

gallium: update new merges to pipe_resource

commit 1cad983eac77a0c5333e6a3ce92b90ac87407714
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Mar 18 06:00:19 2010 +0000

drm/sw: update new merges to pipe_resource

commit 191d39490ed792c569f98d42cf05891b264f71f8
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Mar 18 06:00:01 2010 +0000

vg: update new merges to pipe_resource

commit b727c59bc44812ad503d9390505c92b738a5b8b0
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Mar 18 05:59:38 2010 +0000

llvmpipe: update new merges to pipe_resource

commit 5f4b64b37fdcd70162c382b2ebbd494bef751dbd
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Mar 18 05:59:23 2010 +0000

brw: pipe_resource fixes

commit d4aca209f531f1b65bf706ce1e5fc0375b587eb6
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Mar 18 05:59:06 2010 +0000

util: update new merges to pipe_resource

commit cf6bef0afee10763c78509a3d17e9a6e49bcd3c8
Merge: 1997231 6de8e56
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Mar 18 05:38:50 2010 +0000

Merge commit 'origin/master' into gallium-resources

commit 1997231916144485c3c4a36f53eda39fce460272
Merge: ad88ac7 e1ee3ea
Author: Keith Whitwell <keithw@vmware.com>
Date: Wed Mar 17 08:46:38 2010 +0000

Merge commit 'origin/master' into gallium-resources

Conflicts:
src/gallium/auxiliary/Makefile
src/gallium/auxiliary/util/u_blit.c
src/gallium/auxiliary/util/u_blit.h
src/gallium/auxiliary/util/u_gen_mipmap.c
src/gallium/auxiliary/util/u_gen_mipmap.h
src/mesa/state_tracker/st_cb_texture.c
src/mesa/state_tracker/st_gen_mipmap.c

commit ad88ac79034a91670940276e722bdd398d5c9023
Merge: 77bc770 8cdfd12
Author: Keith Whitwell <keithw@vmware.com>
Date: Tue Mar 16 09:13:07 2010 +0000

Merge branch 'gallium-sampler-view' into gallium-resources

Conflicts:
src/gallium/auxiliary/cso_cache/cso_context.c
src/gallium/auxiliary/util/u_blit.c
src/gallium/drivers/llvmpipe/lp_texture.c
src/gallium/drivers/softpipe/sp_texture.c
src/mesa/state_tracker/st_cb_fbo.c
src/mesa/state_tracker/st_framebuffer.c
src/mesa/state_tracker/st_texture.c

commit 77bc770c991ea025c82eaa4e0e2390efd825d96d
Author: Keith Whitwell <keithw@vmware.com>
Date: Mon Mar 15 22:21:48 2010 +0000

util: missing file

commit f83c91db8ae63a3c3a34ff21492427a5663fb760
Merge: c1d4774 42910eb
Author: Keith Whitwell <keithw@vmware.com>
Date: Mon Mar 15 09:48:58 2010 +0000

Merge commit 'origin/gallium-sampler-view' into gallium-resources

Conflicts:
src/gallium/drivers/nv40/nv40_transfer.c
src/gallium/drivers/nvfx/nvfx_transfer.c
src/gallium/drivers/trace/tr_drm.c

commit dd7ba1378fc50710667724d30d6d4cf1125ad61e
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 23:54:36 2010 +0000

gallium: start a cleanup of buffer_usage

Remove fairly meaningless CPU/GPU READ/WRITE flags and
replace with proper usages.

commit c1d4774187189f4af8ff421b210824f3d53ceefb
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 23:05:45 2010 +0000

llvmpipe: don't FREE userbuffer data

commit 9bfa07afe179f8060e7beefb754a29c4d9c6e349
Merge: 65757a1 08cddfe
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 22:54:51 2010 +0000

Merge commit 'origin/master' into gallium-resources

Conflicts:
src/gallium/drivers/llvmpipe/lp_rast.c
src/gallium/drivers/llvmpipe/lp_scene.c
src/gallium/drivers/llvmpipe/lp_texture.c
src/gallium/drivers/llvmpipe/lp_texture.h
src/gallium/drivers/softpipe/sp_texture.c
src/gallium/drivers/svga/svga_screen_texture.c

commit 65757a143f8e3fcd7afbc1ff92db44a823edf46c
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 22:41:17 2010 +0000

svga: build fixes

commit 2f5435220501d4b3050cab2bb1dce6174cd13ff6
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 22:39:25 2010 +0000

gallivm: build fix

commit 42642ec0984107d82b740711f2debbf38457a06e
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 22:38:33 2010 +0000

llvmpipe: convert to pipe_resources

commit 7bbcb21e20cb545ef8dd5fc61d67ed931c69e813
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 22:19:30 2010 +0000

gallivm: convert to pipe_resources

commit 88ae0d04610ca52649b42e32141a52af6d5a739b
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 21:01:22 2010 +0000

configs: build svga

commit 0e112bc69828e65085ebfaef895ecd78fe53f1c4
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 21:01:17 2010 +0000

gallium: restore PIPE_BUFFER_USAGE_CUSTOM

commit 102aca688b95c976b7178b84092fba7d041ff9d2
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 21:00:41 2010 +0000

util: more transfer helpers

commit a79f6a4a0836fc64c07f9aeec21d914474fe3649
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 20:59:36 2010 +0000

svga: convert to use pipe_resrource

As with others so far, a fairly shallow conversion.

commit 087fb54492fa5e3baf040c5efbf7dacd98a8849b
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 18:38:08 2010 +0000

brw: fix function name

commit cfc9dd707d16e06fd23b6926da3a6e2269f31dc8
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 18:19:06 2010 +0000

gallium: enable brw compile

commit 8a5b86d76bdd3c7de63322423f59940a4dc2ee25
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 18:18:50 2010 +0000

brw: compiles with pipe_resource

commit 563ca458b548c41ca4dca559354c16ca1a80d009
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 18:18:42 2010 +0000

i915: hook up userbuffer create

commit b5095b48247b6020e36cc942ac145c3fccbe9a19
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 17:20:51 2010 +0000

i915: use helpers for is_resource_referenced

commit d5392bdc6d70002acf9c5bac0fde14ba405c4d84
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 17:20:38 2010 +0000

util: helpers for is_resource_referenced

commit 2f3492a5aefbb2e745f6700d8e910ebb5cbb98cf
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 17:08:50 2010 +0000

i915: remove buffer.c again

commit 1373a35b65fcc25ec6cdfea2703bbb3417de2c6d
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 17:08:34 2010 +0000

i915: add new files to scons

commit 0251612d70e57fe38e10e75915b394631d224f2c
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 16:38:29 2010 +0000

i915: compiling with pipe_resources

commit 9a0235864252929a8eedd44dbd2fe30fe54c531d
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 13:51:16 2010 +0000

gallium: remove inline_read transfer

commit a6ba315e25793e0c228d3a4ae2f8201634dc9ff0
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 13:50:32 2010 +0000

trace: get running

Some dumping will be incorrect or disabled, but it runs without
crashing

commit 2133f1d90aa919662a8420a0cf3b4557e6ec1afd
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 13:49:42 2010 +0000

gallium: remove the inline_read transfer

There aren't enough users of this to justify it.

commit bccaf1fa30881f6b4fb189a9b74fc7af79c3b481
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 12:30:37 2010 +0000

identity: hook up inline transfer operations

commit e4c152a344f2f53c842b810724a2ae7cb4554f58
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 12:21:54 2010 +0000

gallium: build trace and identity

commit 0b5a311db78852fa9fd021e17b5968a1e0436b49
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 12:21:36 2010 +0000

gallium: add more of the transfer state to pipe_transfer

Not really sure if recording all the arguments to the
create_{transfer,texture,surface,etc} functions in the result of those
calls is a great idea, but it seems we're fairly dependent on it
throughout the code.

commit a23985c26eafe76b0a7dacc892e50cb589f211fe
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 12:19:46 2010 +0000

identity: compiles with pipe_resources

commit d0d630944304c208f6dade6ef8836763ee2bc7b4
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 12:13:02 2010 +0000

trace: compiles with pipe_resources

commit a4451ea459cc8bfc915fe6aed2891b90854b6c9d
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 11:39:50 2010 +0000

softpipe: give userbuffers a format other than NONE

Most mesa demos working

commit 32bb1bd4ba29884a4ecfa11c8441d33dfceabcef
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 11:39:21 2010 +0000

util: correct argument order in pipe_buffer_map

commit 7e2696c06445282feb781047277b260308760a33
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 11:32:55 2010 +0000

softpipe: transfer flush

commit a0543b13c042e3c1142522d9d136f16fd4cabf78
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 11:32:13 2010 +0000

util: noop implementation of transfer_flush_region

commit ce418533be752dbeb164e7ff82a99483048e482b
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 11:26:07 2010 +0000

gallium: softpipe runs gears with pipe_resources

commit bfda4f2eb34498e4b7f3c608d30fccff6bb9651b
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 11:25:48 2010 +0000

util: get clip_tile working again

commit f5ef219c3bed62b6a0da842e675fae16268e0fbe
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 09:43:20 2010 +0000

softpipe: use u_transfer helpers

commit 072957aab25affecf0702e925310e46c694a5ee4
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 09:42:46 2010 +0000

util: helpers for inline transfers

commit 9c45561fb0d7a52400093bcb2ce5f727fafd7777
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 09:42:25 2010 +0000

util: fix typo calculating transfer box

commit f3e98fd47f36804d019a684d49ff230df3ab0cf5
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 09:25:46 2010 +0000

st/vega: convert to pipe_resource

commit d1b7b00afc944f6499c83d676c7642115d62a62c
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 08:37:56 2010 +0000

gallium: begin converting drivers to pipe_resource

Work in progress...

commit 51c25117f5d6da1926a2be5ecc66677952a8abf0
Author: Keith Whitwell <keithw@vmware.com>
Date: Sat Mar 13 20:16:27 2010 +0000

gallium: work in progress on layering resources on top of old textures

Helper code in an aux module to avoid rewriting all the drivers.

commit fb6764d3ce95c55aa78af2f1c8cbb17b79ce1ba2
Author: Keith Whitwell <keithw@vmware.com>
Date: Sat Mar 13 19:19:09 2010 +0000

heaps of wip

commit ee6b3bc730fcdaf8da3646d62f04578ec06d36a1
Author: Keith Whitwell <keithw@vmware.com>
Date: Sat Mar 13 16:38:02 2010 +0000

wip2

commit 1830880212445189fe267d615075239ed17c7cc0
Merge: 90b4045 47bfbd4
Author: Keith Whitwell <keithw@vmware.com>
Date: Sat Mar 13 15:14:03 2010 +0000

Merge branch 'gallium-sampler-view' into gallium-resources

Conflicts:
src/gallium/include/pipe/p_context.h
src/mesa/state_tracker/st_atom_texture.c
src/mesa/state_tracker/st_cb_bitmap.c
src/mesa/state_tracker/st_cb_drawpixels.c
src/mesa/state_tracker/st_cb_texture.c
src/mesa/state_tracker/st_context.c
src/mesa/state_tracker/st_context.h
src/mesa/state_tracker/st_texture.h

commit 90b4045fbc0a093fcd04efba7e045ec259c490b8
Author: Keith Whitwell <keithw@vmware.com>
Date: Sat Mar 13 14:52:43 2010 +0000

wip
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
a955f86b31304a1a0f35faa0e0861e920354e23b 05-Apr-2010 Marek Olšák <maraeo@gmail.com> r300g: add fallback for back stencil reference value and masks for r3xx-r4xx

This splits rendering into two passes when front and back stencil
reference value, value mask, or write mask don't match.

The advantages of doing it in the driver instead of in st are:
* SWTCL is executed just once and the resulting vertex buffer is reused
in the second pass.
* Lower driver overhead due to the fallback being very close to
the actual draw emission with minimum state change.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
b71bfc4400e1d7c15a2bebbbd3b26a8770fbf546 05-Apr-2010 Marek Olšák <maraeo@gmail.com> r300g: simplify accessing screen from context
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
0179c5a95b604105ead8d642e8313740adc2a686 04-Apr-2010 Marek Olšák <maraeo@gmail.com> r300g: enable conditional rendering also for SWTCL
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
655fe281556679669699052f37412a6243771619 04-Apr-2010 Marek Olšák <maraeo@gmail.com> r300g: add conditional rendering
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
587c5ef01fad962bcfb087232d0925a8eec86953 30-Mar-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Bind constantbuf to Draw immediately, don't wait for render.

Doesn't hurt, and reduces code duplication.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
d0d3abd360a0d98302841e62ab9acdebea2ca8c2 21-Mar-2010 Marek Olšák <maraeo@gmail.com> r300g: put common defines into one file
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
162bc831c93bf8632b25c11f116a1405b93a1704 21-Mar-2010 Marek Olšák <maraeo@gmail.com> r300g: align misaligned ushort vertex indices
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
53ca4f8401f2fc552636d69f7d0dcfd7621769e3 21-Mar-2010 Marek Olšák <maraeo@gmail.com> r300g: fix misaligned generated offset for ubyte vertex indices
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
44cfc4ad740bfc89fc30e19fde4dcc130c605d02 21-Mar-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Bump immediate limits.

Seems like a decent idea, especially since the big barrier now is
getting the VBOs back from the VRAM boundary.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
4711aa089ec7af70bb9118ad8d7830e475805297 21-Mar-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Correctly hax max_index on pipe_vertex_buffers.

Still not happy with this, but at least things seem to work.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
68e58a96e80865878e6881dc4d34fcc3ec24eb19 12-Feb-2010 Dave Airlie <airlied@redhat.com> r300g: rebuild screen/winsys interface

This creates a cleaner winsys and drop the simple screen stuff.

It makes r300g use pb_bufmgr structs.

It also tries to avoid overheads from mapping too often.

v5: clean warnings

v6: break out of cache check on first buffer - since most likely
the first busy one implies all after it are busy.

v7: cleanup a bit

v8-merged: drop cman for now to just get all the interface changes in first.
rework to changes that happened upstream

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
bcec6d851ce6ec2d948f03e5a1adfb5871e4e627 13-Mar-2010 Marek Olšák <maraeo@gmail.com> r300g: refrain from using immediate mode if it causes slowdown

E.g. when mapping buffers could flush CS or cause waiting
for a busy buffer.

The side effect of this is it also fixes progs/demos/arbocclude however
a separate fix should be proposed to address this issue in other cases
it might occur.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
2764a5191ffcaf93a77beff464ac8eca15163fcc 13-Mar-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Forcibly sanitize max index.

Not perfect, but the kernel should shut up now.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
e42b2f768509b6984c7186805c6a8afdaebf3a06 12-Mar-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Properly clamp index limits.

Make the kernel even less likely to barf on us.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
007f25b3bde88de550d6ddba6a96769e4f3d5ce7 10-Mar-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Reorder regs, save one dword.

Or, put another way, save 10% on rendering calls.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
22812421b5f394af741022f2f65ba19bc7b0aa73 09-Mar-2010 Roland Scheidegger <sroland@vmware.com> r300g: fix gallium-vertexlementcso merge damage
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
685340a53e1dcb2a888e634ee71ba24356befe69 09-Mar-2010 Roland Scheidegger <sroland@vmware.com> Merge branch 'gallium-vertexelementcso'

Conflicts:
src/gallium/auxiliary/cso_cache/cso_context.c
src/gallium/auxiliary/util/u_blit.c
src/gallium/auxiliary/util/u_gen_mipmap.c
src/gallium/drivers/i915/i915_context.h
src/gallium/drivers/i965/brw_draw_upload.c
src/gallium/drivers/r300/r300_blit.c
src/gallium/drivers/r300/r300_context.h
src/gallium/drivers/r300/r300_render.c
src/gallium/drivers/r300/r300_state_derived.c
src/mesa/state_tracker/st_cb_bitmap.c
src/mesa/state_tracker/st_cb_clear.c
b03b70f6586baf3ff419be28817f61e6c4bacfb5 07-Mar-2010 Marek Olšák <maraeo@gmail.com> r300g: validate buffers when using SWTCL
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
c37a20416d681a3fea42a1a2ce907eb8e11ba795 06-Mar-2010 Marek Olšák <maraeo@gmail.com> r300g: clamp vertex max index according to currently bound buffers
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
566390bedf4e5f24b5234e9dc08ecb1a6fd4d13b 04-Mar-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Fix indexbuf upper limits.

Wine tends to pessimistically use ~0 for its max index, but r300s
only can go up to 2^24-1, causing the kernel checker to freak out.

Civ4 is marginally improved now. Still crashes, but not as bad.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
e9441e1f88cc07365f4d7d9149ccefe128809645 01-Mar-2010 Roland Scheidegger <sroland@vmware.com> r300g: adapt to new vertex element cso
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
942762cd973af0df75040de21d3321cd19829e70 28-Feb-2010 Marek Olšák <maraeo@gmail.com> r300g: decouple vertex stream setup (PSC) and VS output mapping (VAP_OUT)

Formerly known as vertex_format_state. These two are completely
unrelated when using HWTCL and decoupling them makes the design
less SWTCL-centric.

When bypass_vs_clip_and_viewport gets removed, the PSC setup will
no longer be a derived state.

This change shouldn't make unbreaking SWTCL harder.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
d36e3952c21240cde19dac7f16cc37aac7174673 27-Feb-2010 Marek Olšák <maraeo@gmail.com> r300g: put validating buffers after flushing

Also cleaning up the nasty validation process.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
93da1522098145f0e7ff9d4188050728b075b4a1 27-Feb-2010 Marek Olšák <maraeo@gmail.com> r300g: always emit the correct max vertex index to avoid DRM errors

Fixing bizarre reports that a vertex buffer is not large enough.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
dba7ad895333b9b0988239266a217edeebe6a3b3 26-Feb-2010 Marek Olšák <maraeo@gmail.com> r300g: remove pointless "while"
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
e6632b4bf7cba5fe8a77d54635a3b617fa67185f 22-Feb-2010 Marek Olšák <maraeo@gmail.com> r300g: prevent CS overflow when emitting the draw packets

Signed-off-by: Corbin Simpson <MostAwesomeDude@gmail.com>
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
902ccfcb40f21e1a5fca2f1bec1cbbabb053d8cf 22-Feb-2010 Marek Olšák <maraeo@gmail.com> r300g: fix draw_elements for "start" != 0

Reported-by: Andre Maasikas <amaasikas@gmail.com>
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
b14548ea32000459f4f0c4b49f3fa11d1ee9c003 22-Feb-2010 Dave Airlie <airlied@redhat.com> Revert "r300g: rebuild winsys/pipe buffer handling and add buffer map"

This reverts commit fff5be8e7b4557c221f2425dcafc2e7cbbba76ba.

Probably went too soon with this, dileX reported OA not working for him
it works here fine, but the optimisations I wanted aren't working properly
yet so I'll fix that now.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
fff5be8e7b4557c221f2425dcafc2e7cbbba76ba 12-Feb-2010 Dave Airlie <airlied@redhat.com> r300g: rebuild winsys/pipe buffer handling and add buffer map

This creates a cleaner winsys and drop the simple screen stuff.

It makes r300g use pb_bufmgr structs and adds usage of the cached
bufmgr for vertex/index buffers.

It also avoids mapping too often.

I'm not 100% sure this is perfect but it won't find its own bugs.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
233290f2031057b37fdadb650873b02be307ebc8 21-Feb-2010 Marek Olšák <maraeo@gmail.com> r3OOg: support rendering of more than 65535 vertices per draw call (almost)

The path for VAP_ALT_NUM_VERTICES is also in place (and tested)
but not enabled by default due to the missing support of this reg
in the upstream kernel.

Also, a non-zero BUFFER_BASE in the INDX_BUFFER packet3 hangs the machine.
Am I missing something? Because of this, only draw_arrays can render
more than 65535 vertices without the use of VAP_ALT_NUM_VERTICES.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
28486880ca3ec39419ccee0cb1a3bedc9ef7117c 02-Feb-2010 José Fonseca <jfonseca@vmware.com> gallium: pipe/p_inlines.h -> util/u_inlines.h
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
d36e90f580c06d08526aa7b19793ef986a86ca33 31-Jan-2010 Vinson Lee <vlee@vmware.com> r300g: Silence uninitialized variable warning.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
9851644435f991a1a1bbb145333a97601627b37d 25-Jan-2010 Michal Krol <michal@vmware.com> gallium: Enable multiple constant buffers for vertex and geometry shaders.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
12f97d9c09dee7fffe073c943fd8428db4362e0c 28-Jan-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Fix bizarre half-flushes with immd mode.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
60aa7f1f8042a9291339a3b337a2f1adacf12841 27-Jan-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Make vertex_format into an atom.

Some delicious hax here.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
5fe71949d9e3790ce38ab616aee29079c6b67721 25-Jan-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Finish and enable immediate mode.

Based on Marek's immd-mode patch.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
72778a9d254f6c9c63d86413936ee7f3e5a6e56e 25-Jan-2010 Corbin Simpson <MostAwesomeDude@gmail.com> Revert "r300g,radeong: finish and enable the immediate mode"

This reverts commit 112239e9a66a155d36fe2ad0ab130e6f26eff298.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
112239e9a66a155d36fe2ad0ab130e6f26eff298 18-Jan-2010 Marek Olšák <maraeo@gmail.com> r300g,radeong: finish and enable the immediate mode

Nearly 100% performance increase in glxgears.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
232ddfec24d2e707c4e374d817c559cc6415d609 24-Jan-2010 Dave Airlie <airlied@redhat.com> r300g: fix flushing harder.

I swear ipers runs here after this commit.

After we flush we need to redo the space check
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
3b002c9f75dd76e41552306516545080719fc065 23-Jan-2010 Dave Airlie <airlied@redhat.com> r300: fix wrong call in last commit
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
76bc66b664c7e135aa9c06cedd94ee1961d68c70 23-Jan-2010 Dave Airlie <airlied@redhat.com> r300g: fix up buffer emission ordering.

This fixes the code space checking VBOs, then resetting the space list
and space checking other buffers. it fixes demos/ipers

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
c69bd0ead755b695ee5c64dc9efd45c53b299f21 17-Jan-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Stop using indices.

Sorry, it was a good game, but it just doesn't work.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
eedebfa5793844728f1d41a6b0a899825eba176a 17-Jan-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Respect fill modes in indices fallback.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
1bc77e9931a248b74e0ef6b6aa2f4c5b2d1a2ca3 14-Jan-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Cleanup from last few commits.

Strangely enough, the code solidified pretty quickly.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
60628c65c902f68c600b3d79c06e928aa3286285 14-Jan-2010 Łukasz Krotowski <lukasz.krotowski@gmail.com> r300g: Really destroy translated buffer at the end.

Note that indexSize is changed by r300_translate_elts(). Also make sure
it's destroyed on errors.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
264e548d86ff2e03a097c23e792fe457e77e775c 14-Jan-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Use indices to translate index buffers of ubytes.

progs/redbook/aapoly, among others, works fine now.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
9bb2b901916eded282634dfa52a82982fbeac128 14-Jan-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Disable immediate mode rendering for now.

Will re-enable when the bugs are ironed out.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
e4e5acc833d607bdf5cdd728f8a8c5064ea38838 13-Jan-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Lower the immd mode threshold.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
948b7e97a6d82dc61debc741c2970d9decfdf302 13-Jan-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Switch to immediate mode for tiny renders.

Useful for e.g. blitter.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
bfcafbe15dc98d747ba4c63305c9cf2c4cdbe573 11-Jan-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Don't bother testing for empty scissors.

If somebody goes through that much effort, they probably intended it.
So humor them. :3
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
1e9ffb63401b7bdaf05c53e07b588128566b437d 11-Jan-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Atomize scissors.

Argfl. Some of this code is so questionable.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
46fafdd455bc1f3ee05c076b3c8c541ecd4132dc 10-Jan-2010 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Atomize rasterizer.

I want to stab things now.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
c727fa6dbf5a9fca5fc94de06c309f54402449d1 05-Jan-2010 Keith Whitwell <keithw@vmware.com> Merge commit 'origin/gallium-draw-retval'

Conflicts:
src/gallium/drivers/identity/id_context.c
486ccb55a89f229ffbd181f79f9372cf0b4cbdb6 01-Jan-2010 José Fonseca <jfonseca@vmware.com> r300: Fix scons build.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
5676082d28d1d0cbb70b6526d1a7c650a3d28336 25-Dec-2009 Dave Airlie <airlied@linux.ie> r300g: fixup for GS additions

draw_set_mapped_constant_buffer changed API
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
03f212b0d85fed5dec9a855fb6d079e5fdb60ac9 21-Dec-2009 Keith Whitwell <keithw@vmware.com> gallium: propogate draw retval changes into more drivers
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
759fd1f25f33273e0b7c02598bfa5b97d1a82d77 19-Dec-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Fix provoking vertex for non-quads.

Read the comments. In short, we can't possibly pass piglit's
glean/clipFlat without some help from Gallium and an API/spec change.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
f13a904c34cf7ac5aae3d50a1421259895fc9a08 19-Dec-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Respect provoking vertex for trifans.

Fixes part of piglit's clipFlat test; next up is to get quads right.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
bf611cef29d664c2c2b56d2175c3a966c720e8b8 18-Dec-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Eliminate a couple more asserts.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
62afcbb2338e30aab8c829e92456c073800156f6 18-Dec-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Nuke r300_vbo.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
acce4824ec284b2a9bfdc847d7d79b8064912db9 14-Dec-2009 Marek Olšák <maraeo@gmail.com> r300g: clamp vertex indices to [min,max] everywhere
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
07487643515edb731c6abc3e931c329a89dd9293 05-Dec-2009 Marek Olšák <maraeo@gmail.com> r300g: don't render if everything is culled by scissoring

Otherwise a CS is refused by kernel 2.6.31 (and maybe all later
versions, not sure).
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
1c181a7eff96816b5d72ea5daab5818eef0ebc60 15-Nov-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Begin separating HW TCL and SW TCL state and setup.

This patch removes draw_context entirely from the HW TCL path and cleans up
a few other things along the way. Hopefully, nothing got broken.

Thanks to Marek Olšák for testing, review, and pointing out my bugs. :3
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
c9167d868cfb2ba821f01e0217e3880c5df4c97b 08-Nov-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Fix up SW TCL rendering functions.

They don't work, but at least they're clean now.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
11d9edf4c9c75d5a41fb0a1757441ad315330bea 08-Nov-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Unify context names for counts.

From the SW TCL fixups.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
9f49db6f843885620a52a06721d5972afb29f21a 07-Nov-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Minor code cleanup to avoid confusion.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
cd5b2a93d5c9c60dbe72ebc963dcddf0db0b665c 07-Nov-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Comments.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
ef513776b5bdd11968d2ca03862e9d1ac48e099f 07-Nov-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Don't assert on oversized VBOs, just return FALSE.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
b6c3954138ef70ea7d2cbd3ba9519f404ef616d7 07-Nov-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: s/false/FALSE/

Also s/true/TRUE/
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
7da3cc4241b8550ccc1ec5ba3c93334094f5fb11 07-Nov-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Clean up indexbuf render, switch to RELOC macro.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
7518d9b1b7369f6e5ca1fdaf6a34e39a4acace9a 07-Nov-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Clean up r300_setup_vertex_buffers.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
96b729f926fafeca6479eed0933bc4275fb7843b 07-Nov-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Don't pass hw_prim around in the context.

And some other fixes.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
1ef0341ea7ee08284ebafe4f347643e1190d5777 25-Oct-2009 Maciej Cencora <m.cencora@gmail.com> r300g: don't hang GPU on misbehaving apps
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
3445f476977ae403cef9ca15661fa0f96ff50eca 25-Oct-2009 Maciej Cencora <m.cencora@gmail.com> r300g: VBOs WIP
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
6acb26eadfcb3c21fd09d0b22804b49de9a82cf7 25-Oct-2009 Maciej Cencora <m.cencora@gmail.com> r300g: move vborender context function to seperate file

r300g: Un-migrate r300_draw_render.

It'll make maintaining the SW TCL path easier.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
f3d8d534e6f1d102d71338d58fbaa98c382f1858 28-Oct-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Use u_trim_pipe_prim to prevent lockups from incorrect vert counts.

Adapted from osiris' version on his tree.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
94a63dccdd79268cf37587c93e3dec0d02dad457 24-Oct-2009 Joakim Sindholt <opensource@zhasha.com> r300g: fix scons build yet again
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
06e464c2d57552d5ccde2b98885aeef953d8b2a1 22-Oct-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Clean up duplicate code in r300_render.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
1f7f9bab8139681e1dcbc6c10fb42965059d1395 22-Oct-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Move render functions to r300_render.

Part of the fastpath cleanup.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
6a448a525baf81173f92ee8c3074b98baa54397b 21-Oct-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Cleanup header includes.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
fc8a156cfc539b9c04dc3527e4fc61cb4b0b688e 16-Oct-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Use a hash table to look up vertex info.

Need to move rs_block to this, too.

Also, I'm getting massive amounts of flicker for some reason; I bet we've gotta
re-re-examine PSC and friends. :C
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
f13e507798cdbbe2fad5df33dcd581d49d6fa7ab 14-Oct-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300g: Compiler warning cleanup.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
26df8af4fe4173eb52132dc63ee789b80a7a4db2 03-Oct-2009 Nicolai Hähnle <nhaehnle@gmail.com> r300g: Remove an unnecessarily created pipe buffer (and thus fix a leak)

Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
751aa58e01bd2b4f35aa0e1477d77a0dc5490f39 03-Oct-2009 Nicolai Hähnle <nhaehnle@gmail.com> r300g: Reset vbo_offset after allocation of a new buffer

This fixes the glxgears bug, among other things.

Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
8c8b77a5f3ec1dac0bddc98da3ccbb64f58f22e0 27-Sep-2009 Maciej Cencora <m.cencora@gmail.com> r300g: plug memory leak
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
622b31925b6a68b496cd65c627b8a1ed7e811cc3 11-Sep-2009 Cooper Yuan <cooperyuan@gmail.com> r300g: only allocate one BO for vertex buffers, default size is 64*1024

it can fix redbook/sceneflat, scene, scenebamb, surface, nurbs and so on
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
1ddb22675c123fc955ad3ab46bba45d3330d2ec4 06-Sep-2009 Nicolai Hähnle <nhaehnle@gmail.com> r300g: Fix a number of warnings

Seriously guys....
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
4b01e6f614052e48971f2b2ff474fb66afc4f752 06-Sep-2009 Nicolai Hähnle <nhaehnle@gmail.com> r300g: Debug flags infrastructure

So that debugging is no longer a full-spam-or-nothing approach, you are now
supposed to set the RADEON_DEBUG environment flag just like for classic Mesa.

The available debug flags are different, however. Just running an OpenGL
application with RADEON_DEBUG set to an arbitrary string will print out
helpful information.

Everything must be compiled with -DDEBUG for any of this to work
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
9778731732b4753e79a1b786c65325a52392411d 05-Sep-2009 Cooper Yuan <cooperyuan@gmail.com> r300g: update the value of register VAP_VF_MAX_VTX_INDX
according to actual vertex index count.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
45b77830eb6fa1b712b0416a27990ad8b6eaf78b 02-Jun-2009 Joakim Sindholt <opensource@zhasha.com> r300-gallium: strip swtcl to the bare minimum

This was originally taken from i915 and it shows.
Basically most the stuff in r300_render.c was never needed and
shouldn't have worked in the first place
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
4816764777485b46f360eb6f86dea243d1809221 09-May-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300-gallium: Finish space accounting.

Still broken...
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
a4e0a46a8d6a4f308216c085849305ad82c52f15 15-Apr-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300-gallium: Don't use indexbufs for now.

They aren't working, so best to turn it off.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
8648c2685870174cf620ef15de70ef030a8d5a20 08-Apr-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300-gallium: Properly emit indexbufs.

This fixes hardlocks with anything using elts.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c
5c50218d009a4c8276aa561bd1483742cf6aa20e 04-Apr-2009 Corbin Simpson <MostAwesomeDude@gmail.com> r300-gallium: Move swtcl_emit to render to reflect its true purpose.
/external/mesa3d/src/gallium/drivers/r300/r300_render.c