History log of /external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
f0439040808f81d5b9a4072de7469dacdda96fa7 06-Dec-2016 Rob Clark <robdclark@gmail.com> freedreno/a5xx: texture layout

Seems to be imilar to a4xx, and sampler state "array-pitch" needs
to be aligned to page size.

Signed-off-by: Rob Clark <robdclark@gmail.com>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
c1e9cca6965cb0b7dcb6fa14b08f42e98b25b322 03-Dec-2016 Rob Clark <robdclark@gmail.com> freedreno: pitch alignment should match gmem alignment

Deal w/ differing gmem tile size alignment between generations, and make
sure texture pitch matches.

Signed-off-by: Rob Clark <robdclark@gmail.com>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
8cb965b112ad8a8465c4c5063b821a0210008d7d 21-Nov-2016 Rob Clark <robdclark@gmail.com> freedreno: fix slice size for imported buffers

Signed-off-by: Rob Clark <robdclark@gmail.com>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
3ebfc44b4231cfa131e17076b10140fcd70ccd8c 07-Oct-2016 Rob Clark <robdclark@gmail.com> freedreno: don't try to shadow layered textures

We will only hit this with multi-planar YUV external images, so we would
probably never hit this code path in the first place. But if we did, it
wouldn't do the right thing so just bail.

Signed-off-by: Rob Clark <robdclark@gmail.com>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
0334ba150f429b7d6b0bdc003c4301e0ad5fa21d 27-Sep-2016 Nicolai Hähnle <nicolai.haehnle@amd.com> freedreno: use the new parent/child pools for transfers

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
32c061b110f6c4b6d6c7b1278d4e308e296c3a2a 03-Sep-2016 Rob Clark <robdclark@gmail.com> freedreno: reject imports with bogus pitch

Signed-off-by: Rob Clark <robdclark@gmail.com>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
e7a73b75a0dbd599187b8980b2e1e1cb5dfdaf6d 28-Aug-2016 Marek Olšák <marek.olsak@amd.com> gallium: switch drivers to the slab allocator in src/util
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
a8e6734a83816df2a39e5c4c49721d762caee86b 11-Aug-2016 Rob Clark <robdclark@gmail.com> freedreno: support for using generic clear path

Since clears are more or less just normal draws, there isn't that much
benefit in having hand-rolled clear path. Add support to use u_blitter
instead if gen specific backend doesn't implement ctx->clear().

Signed-off-by: Rob Clark <robdclark@gmail.com>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
e684c32d2fdda204b79661ecf26881eae133d64a 20-Jul-2016 Rob Clark <robdclark@gmail.com> freedreno: some locking

Signed-off-by: Rob Clark <robdclark@gmail.com>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
00bed8a794de3d80a46b65b9ab23c6df83e416a8 13-Jul-2016 Rob Clark <robdclark@gmail.com> freedreno: threaded batch flush

With the state accessed from GMEM+submit factored out of fd_context and
into fd_batch, now it is possible to punt this off to a helper thread.
And more importantly, since there are cases where one context might
force the batch-cache to flush another context's batches (ie. when there
are too many in-flight batches), using a per-context helper thread keeps
various different flushes for a given context serialized.

TODO as with batch-cache, there are a few places where we'll need a
mutex to protect critical sections, which is completely missing at the
moment.

Signed-off-by: Rob Clark <robdclark@gmail.com>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
c44163876a2858aea219a08bd2e048b76953cff9 14-Jul-2016 Rob Clark <robdclark@gmail.com> freedreno: track batch/blit types

Add a bit of extra book-keeping about blits and back-blits (from
resource shadowing). If the app uploads all mipmap levels, as opposed
to uploading the first level and then glGenerateMipmap(), we can discard
the back-blit (as opposed to being naive and shadowing the resource for
each mipmap level). Also, after a normal blit, we might as well flush
the batch immediately, since there is not likely to be further rendering
to the surface.

Signed-off-by: Rob Clark <robdclark@gmail.com>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
7f8fd02dc7cad1ddcfb610db10ffbb41e3e34e7d 11-Jul-2016 Rob Clark <robdclark@gmail.com> freedreno: re-order support for hw queries

Push query state down to batch, and use the resource tracking to figure
out which batch(es) need to be flushed to get the query result.

This means we actually need to allocate the prsc up front, before we
know the size. So we have to add a special way to allocate an un-
backed resource, and then later allocate the backing storage.

Signed-off-by: Rob Clark <robdclark@gmail.com>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
ba3009688892713b711ca6e9420d813f0bdce43f 01-Jul-2016 Rob Clark <robdclark@gmail.com> freedreno: support discarding previous rendering in special cases

Basically, to "DCE" blits triggered by resource shadowing, in cases
where the levels are immediately completely overwritten. For example,
mid-frame texture upload to level zero triggers shadowing and back-blits
to the remaining levels, which are immediately overwritten by
glGenerateMipmap().

Signed-off-by: Rob Clark <robdclark@gmail.com>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
7105774babc4d23623c3547cd19122a55c1090db 29-Jun-2016 Rob Clark <robdclark@gmail.com> freedreno: shadow textures if possible to avoid stall/flush

To make batch re-ordering useful, we need to be able to create shadow
resources to avoid a flush/stall in transfer_map(). For example,
uploading new texture contents or updating a UBO mid-batch. In these
cases, we want to clone the buffer, and update the new buffer, leaving
the old buffer (whose reference is held by cmdstream) as a shadow.

This is done by blitting the remaining other levels (and whatever part
of current level that is not discarded) from the old/shadow buffer to
the new one.

Signed-off-by: Rob Clark <robdclark@gmail.com>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
dcde4cd114e906f5c4372dbb6758026c9222cd2a 28-Jun-2016 Rob Clark <robdclark@gmail.com> freedreno: spiff up some debug traces

Make it easier to track batches, to ensure things happen properly when
they are reordered.

Signed-off-by: Rob Clark <robdclark@gmail.com>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
9f219c7047b51561f6f69274d445e6a6ec41c5f8 27-Jun-2016 Rob Clark <robdclark@gmail.com> freedreno: add batch-cache and batch reordering

Note that I originally also had a entry-point that would construct a key
and do lookup from a pipe_surface. I ended up not needing that (yet?)
but it is easy-enough to re-introduce later if we need it for the blit
path.

For now, not enabled by default, but can be enabled (on a3xx/a4xx) with
FD_MESA_DEBUG=reorder.

Signed-off-by: Rob Clark <robdclark@gmail.com>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
f02a64dbdd2ec147167ad60357bd46d8d964290a 27-Jun-2016 Rob Clark <robdclark@gmail.com> freedreno: move more batch related tracking to fd_batch

To flush batches out of order, the gmem code needs to not depend on
state from fd_context (since that may apply to a more recent batch).
So this all moves into batch.

The one exception is the gmem/pipe/tile state itself. But this is
only used from gmem code (and batches are flushed serially). The
alternative would be having to re-calculate GMEM layout on every
batch, even if the dimensions of the render targets are the same.

Note: This opens up the possibility of pushing gmem/submit into a
helper thread.

Signed-off-by: Rob Clark <robdclark@gmail.com>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
9e4561d3c47c2dabce43ce160915fd9bcea05a81 21-May-2016 Rob Clark <robclark@freedesktop.org> freedreno: push resource tracking down into batch

Signed-off-by: Rob Clark <robdclark@gmail.com>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
9bbd239a4039522d7c1023ecb21764679447bb2d 20-May-2016 Rob Clark <robclark@freedesktop.org> freedreno: introduce fd_batch

Introduce the batch object, to track a batch/submit's worth of
ringbuffers and other bookkeeping. In this first step, just move
the ringbuffers into batch, since that is mostly uninteresting
churn.

For now there is just a single batch at a time. Note that one
outcome of this change is that rb's are allocated/freed on each
use. But the expectation is that the bo pool in libdrm_freedreno
will save us the GEM bo alloc/free which was the initial reason
to implement a rb pool in gallium.

The purpose of the batch is to eventually facilitate out-of-order
rendering, with batches associated to framebuffer state, and
tracking the dependencies on other batches.

Signed-off-by: Rob Clark <robdclark@gmail.com>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
1ffe77e7bb2486ea74cda077ed2a9622b758395c 16-Jul-2016 Marek Olšák <marek.olsak@amd.com> gallium: split transfer_inline_write into buffer and texture callbacks

to reduce the call indirections with u_resource_vtbl.

The worst call tree you could get was:
- u_transfer_inline_write_vtbl
- u_default_transfer_inline_write
- u_transfer_map_vtbl
- driver_transfer_map
- u_transfer_unmap_vtbl
- driver_transfer_unmap

That's 6 indirect calls. Some drivers only had 5. The goal is to have
1 indirect call for drivers that care. The resource type can be determined
statically at most call sites.

The new interface is:
pipe_context::buffer_subdata(ctx, resource, usage, offset, size, data)
pipe_context::texture_subdata(ctx, resource, level, usage, box, data,
stride, layer_stride)

v2: fix whitespace, correct ilo's behavior

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Acked-by: Roland Scheidegger <sroland@vmware.com>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
4500d17245d0c4bd0b52bf444cf1d90bab932794 11-May-2016 Rob Clark <robclark@freedesktop.org> freedreno: fix multi-layer transfer_map's

The use of transfer_inline_write() in TexSubImage path (see fb9fe352ea4)
exposed a bug for "layer_first" resources (ie. a4xx) not setting correct
layer_stride.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
3a6763f0a078b2abc9a2b0dd43efc6efe73eee30 04-May-2016 Thomas Hindoe Paaboel Andersen <phomes@gmail.com> freedreno: remove null check before free

Reviewed-by: Eduardo Lima Mitev <elima@igalia.com>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
2c8674f5a90f236b9e07b759d49911d79921bc78 25-Apr-2016 Rob Clark <robclark@freedesktop.org> freedreno: honor handle->offset

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
82db518f1519cec9e3842f23455a105e2006afbd 24-Feb-2016 Marek Olšák <marek.olsak@amd.com> gallium: add external usage flags to resource_from(get)_handle (v2)

This will allow drivers to make better decisions about texture sharing
for DRI2, DRI3, Wayland, and OpenCL.

v2: add read/write flags, take advantage of __DRI_IMAGE_USE_BACKBUFFER

Reviewed-by: Axel Davy <axel.davy@ens.fr>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
0149e7a944e65a0c7c6f7465ecf7103171943379 06-Dec-2015 Serge Martin <edb+mesa@sigluy.net> freedreno: change to goto fail

in fd_resource_transfer_map, like the others error cases

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
93905a8df1d982d171ee690f9ec73f90f00fa49f 21-Nov-2015 Ilia Mirkin <imirkin@alum.mit.edu> freedreno/a4xx: add astc formats

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
ecb0dcd34c9bb31b240a213cd17c236b224cd290 21-Nov-2015 Ilia Mirkin <imirkin@alum.mit.edu> freedreno/a4xx: only align slices in non-layer_first textures

When layer is the container, slices are tightly packed inside of each
layer. We don't need any additional alignment. On a3xx, each slice
contains all the layers, so having alignment makes sense.

This fixes a whole slew of array-related piglits, including texelFetch
and tex-miplevel-selection varieties.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: mesa-stable@lists.freedesktop.org
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
fe29330406f8ea277b2c02f9c6dd2da78796ea84 21-Nov-2015 Ilia Mirkin <imirkin@alum.mit.edu> freedreno/a4xx: use hardware RGTC texture samplers

a4xx hardware has real support for RGTC so there's no need to fake it
like we do on a3xx. Undo the hacks, and keep track of an "internal
format" of a resource, which on a3xx will be different, triggering the
transfer-time conversions to take place.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
d69e557f2a2c39888d83c7b52244412ee2a5594e 08-Nov-2015 Ilia Mirkin <imirkin@alum.mit.edu> freedreno: add support for conditional rendering, required for GL3.0

A smarter implementation would make it possible to attach this to emit
state for the BY_REGION versions to avoid breaking the tiling. But this
is a start.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
059da344ec17853bb503a7e4afa229c2e2a98c83 08-Nov-2015 Ilia Mirkin <imirkin@alum.mit.edu> freedreno/a3xx: add fake RGTC support (required for GL3)

Also throw in LATC while we're at it (same exact format). This could be
made more efficient by keeping a shadow compressed texture to use for
returning at map time. However... it's not worth it for now...
presumably compressed textures are not updated often.

Lastly fix up Z32S8 transfers to non-0 layers.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
581cbfdec1eda9128a9ed7ff9b0ea13ec4d3e493 16-Aug-2015 Ilia Mirkin <imirkin@alum.mit.edu> freedreno/a3xx: fix up logic for handling block formats

This only appears in cubemaps which have have packed layers, so are very
sensitive to any layout disagreement between sw and hw.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
b4ace13eeae7ec58262d8a3ec38adca63b6add76 03-Aug-2015 Ilia Mirkin <imirkin@alum.mit.edu> freedreno/a4xx: add cube map array support

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
5ca032a9a8ece0a8a43151f988215484da3c1811 31-Jul-2015 Rob Clark <robclark@freedesktop.org> freedreno: simplify/cleanup resource status tracking

Collapse dirty/reading bools into status bitmask (and drop writing which
should really be the same as dirty). And use 'used_resources' list for
all tracking, including zsbuf/cbufs, rather than special casing the
color and depth/stencil buffers.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
be8a8ebe578267ab24e343c3c1347936a221468e 25-Jul-2015 Rob Clark <robclark@freedesktop.org> freedreno: add transform-feedback state

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
bda1354aac9d32e236048af4d353d5530f644c34 26-Jul-2015 Rob Clark <robclark@freedesktop.org> freedreno: add resource tracking support for written buffers

With stream-out (transform-feedback) we have the case where resources
are *written* by the gpu, which needs basically the same tracking to
figure out when rendering must be flushed.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
422296e38d04789cc4ca336b46979b44abd19b5d 03-Jul-2015 Rob Clark <robclark@freedesktop.org> freedreno: fix crash in fd_invalidate_resource()

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
9fc3f472784b2ba53655b715d602268bef5bf12e 22-Apr-2015 Ilia Mirkin <imirkin@alum.mit.edu> freedreno/a3xx: add support for S8 and Z32F_S8

Enables ARB_depth_buffer_float. There is no sampling support for
interleaved Z32F_S8, so we store the two textures separately, one as
Z32F, the other as S8. As a result, we need a lot of additional logic
for restores and transfers.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
0a4cb00c7765dbe26a4dbfad3bb87d6c6ce03919 06-Apr-2015 Ilia Mirkin <imirkin@alum.mit.edu> freedreno: add fd_transfer to wrap around pipe_transfer

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
14dfd8cc4344a1bb15a63179b497d14eaec9cc0d 04-Apr-2015 Ilia Mirkin <imirkin@alum.mit.edu> freedreno: dirty context when reallocating a bound bo

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
bde2045fa247b4d1de98a3bc7585d1b60f9b58b7 03-Apr-2015 Ilia Mirkin <imirkin@alum.mit.edu> freedreno: keep track of buffer valid ranges

Copies nouveau_buffer and radeon_buffer. This allows a write to proceed
to an uninitialized part of a buffer even when the GPU is using the
previously-initialized portions.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
dacf22e0a34d4dc2595f3cb0dbee52318dc9d0d7 03-Apr-2015 Ilia Mirkin <imirkin@alum.mit.edu> freedreno: mark resources as being read so that writes flush the queue

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
1fee3061d531a9f4068952209926ad518aab07ee 03-Apr-2015 Ilia Mirkin <imirkin@alum.mit.edu> freedreno: add a reading flag to indicate gpu is reading rsc

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
ea0952a9db1b5887f915d8f750f5fa9c45719976 03-Apr-2015 Ilia Mirkin <imirkin@alum.mit.edu> freedreno: fix resource flushing confusion

A resource flush is an upload of a hypothetically-staging texture to the
GPU. For a UMA system, this will largely be a no-op or
cache-maintenance. Move the render flush logic into transfer_map where
it belongs, and clear out the transfer_flush function.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
738c8319ac85b175994b35d1fdc4860e18184b93 15-Mar-2015 Ilia Mirkin <imirkin@alum.mit.edu> freedreno/a3xx: fix 3d texture layout

The SZ2 field contains the layer size of a lower miplevel. It only
contains 4 bits, which limits the maximum layer size it can describe. In
situations where the next miplevel would be too big, the hardware
appears to keep minifying the size until it hits one of that size.
Unfortunately the hardware's ideas about sizes can differ from
freedreno's which can still lead to issues. Minimize those by stopping
to minify as soon as possible.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
620e29b74821fd75b24495ab2bfddea53fc75350 13-Mar-2015 Ilia Mirkin <imirkin@alum.mit.edu> freedreno: fix slice pitch calculations

For example if width were 65, the first slice would get 96 while the
second would get 32. However the hardware appears to expect the second
pitch to be 64, based on halving the 96 (and aligning up to 32).

This fixes texelFetch piglit tests on a3xx below a certain size. Going
higher they break again, but most likely due to unrelated reasons.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
89b26d5a360ebde11a69f2cdefa66e4d6a2a13fd 13-Mar-2015 Ilia Mirkin <imirkin@alum.mit.edu> freedreno/a3xx: use the same layer size for all slices

We only program in one layer size per texture, so that means that all
levels must share one size. This makes the piglit test

bin/texelFetch fs sampler2DArray

have the same breakage as its non-array version instead of being
completely off, and makes

bin/ext_texture_array-gen-mipmap

start passing.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
0ebd623f6058fd20ee28e206da2da259073fdf86 12-Dec-2014 Rob Clark <robclark@freedesktop.org> freedreno/a4xx: mipmaps

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
1e3a732603a4a4d5b3e7102cf0d7840f79ecf5c4 05-Dec-2014 Rob Clark <robclark@freedesktop.org> freedreno/a4xx: texture fixes

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
5d7c9c9160e0d425df220e5e1898d0ab7dee2c83 04-Dec-2014 Rob Clark <robclark@freedesktop.org> freedreno: cleanup slice alignment/setup

Collapse things back into a setup_slices() which takes the desired
alignment as a param. This gets things ready for a4xx which has some
slightly different requirements.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
6eabc119367f637be37d106851d9e90b1d3f07f9 22-Oct-2014 Rob Clark <robclark@freedesktop.org> freedreno: fix PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE

fd_bo_cpu_prep() doesn't realize the bo is already referenced in
unflushed cmdstream. It could be made to do so (but would have to be
implemented twice, ie. both for msm and kgsl). But we still can't do
the expected thing if the caller isn't using _NOSYNC. Because of the
way the tiling works, we need to build quite a bit of cmdstream at flush
time, which is not possible to do at the libdrm level.

So rather than trying to make fd_bo_cpu_prep() smarter than it can
possibly be, just *always* discard and reallocate if the
PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE flag is set.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
74069e324e559a9361ebe631d1b819ff6e675c8f 15-Oct-2014 Rob Clark <robclark@freedesktop.org> freedreno/a3xx: more layer/level fixes

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
dd332fe6414366b22a9d9ffce0fded51bc5b71a4 15-Oct-2014 Rob Clark <robclark@freedesktop.org> freedreno: fix layer_stride

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
d5d80b37392c7f15c4fb39b6b1826230239930fd 14-Oct-2014 Rob Clark <robclark@freedesktop.org> freedreno/a3xx: refactor vertex state emit

Get rid of fd3_vertex_buf and use fd_vertex_state directly for all
draws. Removes a tiny bit of CPU overhead for munging around the vertex
state every time it is emitted, but more importantly it cleans things up
for later optimizations, so the emit paths don't have to special case
internal draws (gmem<->mem, clears, etc) with regular draws.

Instead of constructing fd3_vertex_buf array each time for internal
draws, and context init time pre-create solid_vbuf_state and
blit_vbuf_state.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
ca29c4c3b0e779909467c0739fc176c64a829142 13-Sep-2014 Rob Clark <robclark@freedesktop.org> freedreno/a3xx: 3d/array textures

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
b40a6c2b17de1f63d70d62608737ed9a259da1c5 23-Aug-2014 Rob Clark <robclark@freedesktop.org> freedreno: implement pipe_flush_resource()

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
478a08ebd2b29724f2d440e560ab331c534236cd 23-Aug-2014 Rob Clark <robclark@freedesktop.org> freedreno: don't ignore src/dst level

Don't ignore src/dst_level in pipe_copy_region.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
286863939f9b0896db1b382c967d0d92b14729c9 24-May-2014 Rob Clark <robclark@freedesktop.org> freedreno: few caps fixes

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
b8f78e18907be379415c8c804b634808349fc1d9 10-May-2014 Rob Clark <robclark@freedesktop.org> freedreno: add support for hw queries

Real GPU queries need some infrastructure to track samples per tile and
accumulate the results. But fortunately this can be shared across GPU
generation.

See:
https://github.com/freedreno/freedreno/wiki/Queries#hardware-queries

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
0a1e4361e8edd0d0bb5d22be9527ab40080c66e7 27-Sep-2013 Rob Clark <robclark@freedesktop.org> freedreno/resource: fail more gracefully

Fail more gracefully when buffer allocation/import fails.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
419cd5f2a24b87d31a2fd9dd9b7d0025b4f5515c 20-Sep-2013 Marek Olšák <marek.olsak@amd.com> gallium: add flush_resource context function

r600g needs explicit flushing before DRI2 buffers are presented on the screen.

v2: add (stub) implementations for all drivers, fix frontbuffer flushing
v3: fix galahad

Signed-off-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
575a6e7ec57dc70f96e2618748ed07c7882cf8c1 19-Sep-2013 Rob Clark <robclark@freedesktop.org> freedreno: fix glReadPixels

duh, we still need to flush if there are pending draws and it isn't an
unsynchronized case.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
ffa3244534d4d1465b64e39332227f7a7322553c 11-Sep-2013 Rob Clark <robclark@freedesktop.org> freedreno: PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE

When the old contents do not need to be preserved, it is faster to
create a new backing bo rather than stall.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
cb9e07aa84ff2dd8492fd8a7064ff2539d7d40f9 31-Aug-2013 Rob Clark <robclark@freedesktop.org> freedreno: multi-slice resources (cubemap, mipmap, etc)

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
e95b7d89b9cd7d82b6122f9ad9bbf2249a0a8802 29-Aug-2013 Rob Clark <robclark@freedesktop.org> freedreno: updates for msm drm/kms driver

There where some small API tweaks in libdrm_freedreno to enable support
for msm drm/kms driver.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
18c317b21ddc2ec4538544f9dd69dc568dcf821f 26-May-2013 Rob Clark <robclark@freedesktop.org> freedreno: prepare for a3xx

Split the parts that are specific to adreno a2xx series GPUs from the
parts that will be in common with a3xx, so that a3xx support can be
added more cleanly.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
97fa811d1481ecbec30634eaaa7d13b8e35b2ae4 14-May-2013 Rob Clark <robclark@freedesktop.org> freedreno: implement pipe->resource_copy_region()

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
73de07cbbcaf6804c489546cce1b3c55db4535ae 25-Apr-2013 Rob Clark <robclark@freedesktop.org> freedreno: use writecombine buffers

Better than uncached for writes, which are common for vertex buffer
upload, etc.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
eec37f1cdc1651588a4fcd5e87b57d85a57e431f 22-Apr-2013 Rob Clark <Rob Clark robdclark@freedesktop.org> freedreno: use u_math macros/helpers more

Get rid of a few self-defined macros:
ALIGN() -> align()
min() -> MIN2()
max() -> MAX2()

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
732b0b5ebc5a30b6e87f67aabfb0e25d3e662d41 06-Mar-2013 Rob Clark <robdclark@gmail.com> freedreno: track maximal scissor bounds

Optimize out parts of the render target that are scissored out by taking
into account maximal scissor bounds in fd_gmem_render_tiles().

This is a big win on things like gnome-shell which frequently do partial
screen updates.

Signed-off-by: Rob Clark <robdclark@gmail.com>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
eab8d6cbdb790233a581c04763e0e71b0570d3b7 21-Mar-2013 Rob Clark <robdclark@gmail.com> freedreno: add pipe->blit

Signed-off-by: Rob Clark <robdclark@gmail.com>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c
6173cc19c45d92ef0b7bc6aa008aa89bb29abbda 27-Oct-2012 Rob Clark <robclark@freedesktop.org> freedreno: gallium driver for adreno

Currently works on a220. Others in the a2xx family look pretty similar
and should be pretty straightforward to support with the same driver.

The a3xx has a new shader ISA, and while many registers appear similar,
the register addresses have been completely shuffled around. I am not
sure yet whether it is best to support with the same driver, but
different compiler, or whether it should be split into a different
driver.

v1: original
v2: build file updates from review comments, and remove GPL licensed
header files from msm kernel
v3: smarter temp/pred register assignment, fix clear and depth/stencil
format issues, resource_transfer fixes, scissor fixes

Signed-off-by: Rob Clark <robdclark@gmail.com>
/external/mesa3d/src/gallium/drivers/freedreno/freedreno_resource.c