History log of /external/mesa3d/src/gallium/drivers/swr/swr_context.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
79b66ec05e2745e5d19838dcfd83f905afa82b6c 13-Dec-2016 Bruce Cherniak <bruce.cherniak@intel.com> swr: Implement fence attached work queues for deferred deletion.

Work can now be added to fences and triggered by fence completion. This
allows for deferred resource deletion, and other asynchronous tasks.

Reviewed-by: George Kyriazis <george.kyriazis@intel.com>
/external/mesa3d/src/gallium/drivers/swr/swr_context.cpp
ab3bbe06edbf459b24cb6908393679d29adf3a2c 26-Nov-2016 Ilia Mirkin <imirkin@alum.mit.edu> swr: turn off queries around blits

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Tim Rowley <timothy.o.rowley@intel.com>
/external/mesa3d/src/gallium/drivers/swr/swr_context.cpp
763c015ce52fe84e669b4fba722da06b72267d8f 20-Nov-2016 Ilia Mirkin <imirkin@alum.mit.edu> swr: remove warning about multi-layer surfaces

We now support clearing these, and actually rendering to multiple layers
would require GS support, which will fail in much more spectacular ways
for now. Once that is hooked up, there won't be anything else to do
here.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Tim Rowley <timothy.o.rowley@intel.com>
/external/mesa3d/src/gallium/drivers/swr/swr_context.cpp
7cfb364b1a373bce6b0b273556953fbb78c139e9 09-Nov-2016 Ilia Mirkin <imirkin@alum.mit.edu> swr: rework resource layout and surface setup

This is a bit of a mega-commit, but unfortunately there's no great way
to break this up since a lot of different pieces have to match up. Here
we do the following:
- change surface layout to match swr's Load/StoreTile expectations
- fix sampler settings to respect all sampler view parameters
- fix stencil sampling to read from secondary resource
- respect pipe surface format, level, and layer settings
- fix resource map/unmap based on the new layout logic
- fix resource map/unmap to copy proper parts of stencil values in and
out of the matching depth texture

These fix a massive quantity of piglits, including all the
tex-miplevel-selection ones.

Note that the swr native miptree layout isn't extremely space-efficient,
and we end up using it for all textures, not just the renderable ones. A
back-of-the-envelope calculation suggests about 10%-25% increased memory
usage for miptrees, depending on the number of LODs. Single-LOD textures
should be unaffected.

There are a handful of regressions as a result of this change:
- Some textureGrad tests, these failures match llvmpipe. (There are
debug settings allowing improved gallivm sampling accurancy.)
- Some layered clearing tests as swr doesn't currently support that. It
was getting lucky before because enough other things were broken.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
/external/mesa3d/src/gallium/drivers/swr/swr_context.cpp
974d280e815727f84e799cf69058630b954dec7e 11-Nov-2016 George Kyriazis <george.kyriazis@intel.com> swr: Handle windows.h and NOMINMAX

Reorder header files so that we have a chance to defined NOMINMAX before
mesa include files include windows.h

v3: split from bigger patch

Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
/external/mesa3d/src/gallium/drivers/swr/swr_context.cpp
8c0f76e961ae023bbe7c8deed1abd04496e9691b 09-Nov-2016 Ilia Mirkin <imirkin@alum.mit.edu> swr: fix texture layout for compressed formats

Fixes the texsubimage piglit and lets the copyteximage one get further.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
/external/mesa3d/src/gallium/drivers/swr/swr_context.cpp
c8a51fa75d2642d71ac23a04f37f570613ac9a87 10-Nov-2016 Tim Rowley <timothy.o.rowley@intel.com> swr: [rasterizer core] remove driverType

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
/external/mesa3d/src/gallium/drivers/swr/swr_context.cpp
903d00cd32137161c0b57bcba95af51e47d91fa5 27-Sep-2016 Bruce Cherniak <bruce.cherniak@intel.com> swr: Removed stalling SwrWaitForIdle from queries.

Previous fundamental change in stats gathering added a temporary
SwrWaitForIdle to begin_query and end_query. Code has been reworked to
remove stall.

Reviewed-by: George Kyriazis <george.kyriazis@intel.com>
/external/mesa3d/src/gallium/drivers/swr/swr_context.cpp
4e8763cb0904c30d1962cf5ad52fe3a87be7b4bd 07-Aug-2016 Tim Rowley <timothy.o.rowley@intel.com> swr: [rasterizer core] split FE and BE stats

Separated FE stats out into its own structure. There are 17 FE vs 3 BE
stat fields. Since there is only one FE thread per DC then we don't have
to loop over all threads and sum up FE stats over all the worker threads.
This also reduces size of DC since we only need to store one copy of the
FE stats and not one per worker. Finally, we can use the new FE callback
mechanism to update these.

Signed-off-by: Tim Rowley <timothy.o.rowley@intel.com>
/external/mesa3d/src/gallium/drivers/swr/swr_context.cpp
6625fd08db0a24fad54d69ca1eb3935304b3a53e 05-Aug-2016 Tim Rowley <timothy.o.rowley@intel.com> swr: [rasterizer core] fundamentally change how stats work

Add a per draw stats callback to update driver stats.

Signed-off-by: Tim Rowley <timothy.o.rowley@intel.com>
/external/mesa3d/src/gallium/drivers/swr/swr_context.cpp
7cf187d08ae6a64c959de1cdf9004f5fb2fd097a 02-Aug-2016 Tim Rowley <timothy.o.rowley@intel.com> swr: [rasterizer core] improve implementation for SoWriteOffset

1. SoWriteOffset is no longer treated as a stat
2. Added callback from core to update streamout write offset

Signed-off-by: Tim Rowley <timothy.o.rowley@intel.com>
/external/mesa3d/src/gallium/drivers/swr/swr_context.cpp
54272e18a682c8b82d4a86b2c07b51c303d8cead 06-Aug-2016 Marek Olšák <marek.olsak@amd.com> gallium: add a pipe_context parameter to fence_finish

required by glClientWaitSync (GL 4.5 Core spec) that can optionally flush
the context

Reviewed-by: Rob Clark <robdclark@gmail.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/drivers/swr/swr_context.cpp
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/swr/swr_context.cpp
6b0ac95c2862b4d464079b2edd9b59b5ef906da3 17-Jun-2016 Bruce Cherniak <bruce.cherniak@intel.com> swr: Update screen->context pointer with multiple contexts.

A pipe pointer in the screen allows for access to current device context
in flush_frontbuffer and resource_destroy. This wasn't tracking current
context in multi-context situations.

v2: More caffeine. Corrected compare, removed unnecessary set of
screen-pipe in create_context, and added a few comments.
/external/mesa3d/src/gallium/drivers/swr/swr_context.cpp
504df3a1d791d071259d23b4a99b9b46b1f601af 27-Apr-2016 Tim Rowley <timothy.o.rowley@intel.com> swr: s/Elements/ARRAY_SIZE/

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
/external/mesa3d/src/gallium/drivers/swr/swr_context.cpp
3227c10270f8b7e8bb66bb7d50531fec8be75adb 18-Apr-2016 Tim Rowley <timothy.o.rowley@intel.com> swr: dereference cbuf/zbuf/views on context destroy

Fixes resource memory leaks.

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/swr/swr_context.cpp
61beaa22795d45f3416ecb27de54a9ee8ae1b283 09-Mar-2016 Tim Rowley <timothy.o.rowley@intel.com> swr: [rasterizer core] subcontext rework
/external/mesa3d/src/gallium/drivers/swr/swr_context.cpp
dd63fa28f14f8ddeeeca1847eb7d38f4e2bc2234 14-Mar-2016 George Kyriazis <george.kyriazis@intel.com> gallium/swr: Cleaned up some context-resource management

Removed bound_to_context. We now pick up the context from the screen
instead of the resource itself. The resource could be out-of-date
and point to a pipe that is already freed.

Fixes manywin mesa xdemo.

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
/external/mesa3d/src/gallium/drivers/swr/swr_context.cpp
e9d68cc3da07c4b566799bbaec2434bfc21d3e0c 10-Mar-2016 Bruce Cherniak <bruce.cherniak@intel.com> gallium/swr: Resource management

Better tracking of resource state and synchronization.
A follow on commit will clean up resource functions into a new
swr_resource.cpp file.

Reviewed-By: George Kyriazis <george.kyriazis@intel.com>
/external/mesa3d/src/gallium/drivers/swr/swr_context.cpp
2b2d3680bf164ec4f8b50436b96c3fc195318ea5 17-Feb-2016 Tim Rowley <timothy.o.rowley@intel.com> gallium/swr: add OpenSWR driver

OpenSWR is a new software rasterizer for x86 processors designed
for high performance and high scalablility on visualization workloads.

Acked-by: Roland Scheidegger <sroland@vmware.com>
Acked-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/swr/swr_context.cpp