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
|