History log of /external/mesa3d/src/gallium/drivers/vc4/vc4_job.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
f597ac3966405934e13a9aaa18c73211b5a40c7c 08-Sep-2016 Eric Anholt <eric@anholt.net> vc4: Implement job shuffling

Track rendering to each FBO independently and flush rendering only when
necessary. This lets us avoid the overhead of storing and loading the
frame when an application momentarily switches to rendering to some other
texture in order to continue rendering the main scene.

Improves glmark -b desktop:effect=shadow:windows=4 by 27%
Improves glmark -b
desktop:blur-radius=5:effect=blur:passes=1:separable=true:windows=4
by 17%

While I haven't tested other apps, this should help X rendering a lot, and
I've heard GLBenchmark needed it too.
/external/mesa3d/src/gallium/drivers/vc4/vc4_job.c
f473348468ae1c68e7ef8eaf29f2cc51d17fbec7 08-Sep-2016 Eric Anholt <eric@anholt.net> vc4: Handle resolve skipping at job submit time.

This is done in vc4_flush currently, but I'm going to make the job always
track the surfaces it might be rendering to instead of putting in the
destinations at flush time.
/external/mesa3d/src/gallium/drivers/vc4/vc4_job.c
9688166bd9c3e12c74c55b857ad0dbb62b28da9e 06-Apr-2015 Eric Anholt <eric@anholt.net> vc4: Move the render job state into a separate structure.

This is a preparation step for having multiple jobs being queued up at the
same time.
/external/mesa3d/src/gallium/drivers/vc4/vc4_job.c
c31a7f529fadc016786eedc35ce65802a915ce09 07-Sep-2016 Eric Anholt <eric@anholt.net> vc4: Always unref the current job surfaces at job reset time.

Drops some tricky logic in vc4_flush() trying to update the pointers, and
fixes a broken lack of unref for MSAA surfaces at context destroy time.
/external/mesa3d/src/gallium/drivers/vc4/vc4_job.c
774a556b6dc0d49f9f29c438349a66e69062e6e4 08-Sep-2016 Eric Anholt <eric@anholt.net> vc4: Move job-submit skip cases to vc4_job_submit().

For calling job_submit() directly, I need the skipping here.
/external/mesa3d/src/gallium/drivers/vc4/vc4_job.c
0ef1b32ebbcf9ad6316021a1059ba7d6a65b9588 08-Sep-2016 Eric Anholt <eric@anholt.net> vc4: Move bin CL trailer to job_submit() time.

To implement job shuffling, I want to be able to call submit() on specific
jobs, turning vc4_flush() into the context's flush-all-jobs hook.
/external/mesa3d/src/gallium/drivers/vc4/vc4_job.c
3fba517bdd03551f7c7ff21dfe1896c677cbccda 26-Jan-2016 Eric Anholt <eric@anholt.net> vc4: Throttle outstanding rendering after submission.

Just make sure that after we've submitted, we get to at least 5
(global) submits ago before we go on to do more. Prevents up to
seconds of lag with window movement in X with xcompmgr -c. There may
be useful tuning to do in the future, but for now this gets us
usability.

Cc: "11.0 11.1" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/gallium/drivers/vc4/vc4_job.c
2a449ce7c961f3269f9a37ddf4fe340fc170c609 26-Jan-2016 Eric Anholt <eric@anholt.net> vc4: Don't record the seqno of a failed job submit.

On an error return, the returned seqno will probably be unset, so we'd
lose track of what we've submitted so far for waiting on in the
future.

Cc: "11.0 11.1" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/gallium/drivers/vc4/vc4_job.c
f2cf2a63f1211642ca20b73ad5f23c60cc3fa703 15-Dec-2015 Eric Anholt <eric@anholt.net> vc4: Don't consider nr_samples==1 surfaces to be MSAA.

This is apparently a weirdness of gallium -- nr_samples==1 is occasionally
used and means the same thing as nr_samples==0. Fixes a bunch of
ARB_framebuffer_srgb blit cases in piglit.
/external/mesa3d/src/gallium/drivers/vc4/vc4_job.c
02bcb443ee39cec1b61e5ba3e466471f3668f536 12-Dec-2015 Eric Anholt <eric@anholt.net> vc4: Warn instead of abort()ing on exec ioctl failures.

It's really harsh to abort() the X Server because of a momentary failure
(particularly -ENOMEM). I don't see a way to pass an -ENOMEM up the stack
from here, but we can at least log to stderr before proceeding on.

Cc: "11.1" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/drivers/vc4/vc4_job.c
edfd4d853a0d26bc0cde811de7b20116db7e66fc 22-Jun-2015 Eric Anholt <eric@anholt.net> vc4: Add support for drawing in MSAA.
/external/mesa3d/src/gallium/drivers/vc4/vc4_job.c
e7c8ad0a6c8ba263f29b7c3c5120bc6beabeba7b 21-Jun-2015 Eric Anholt <eric@anholt.net> vc4: Add kernel RCL support for MSAA rendering.
/external/mesa3d/src/gallium/drivers/vc4/vc4_job.c
568d3a8e32109200cc12549d18118b7660be628b 22-Jun-2015 Eric Anholt <eric@anholt.net> vc4: Rename color_ms_write to color_write.

I was thinking this was the only MSAA resolve thing, so it should be noted
separately, but actually load/store general also do MSAA resolve.
/external/mesa3d/src/gallium/drivers/vc4/vc4_job.c
7d7fbcdf4e1683d1aef19c7ee08cc222d8279672 23-Oct-2015 Eric Anholt <eric@anholt.net> vc4: Add a workaround for HW-2116 (state counter wrap fails).

I haven't proven that this happens (I've got other GPU hangs in the
way), but the closed driver also does this and it's documented as an
errata.
/external/mesa3d/src/gallium/drivers/vc4/vc4_job.c
a0d3915663fb7cbd3c1a5561450e256e00ecf11b 10-Jul-2015 Eric Anholt <eric@anholt.net> vc4: Make a helper function for getting the current offset in the CL.

I needed to rewrite this a bit for safety checking in the next commit.
Despite being a static inline of the same thing that was being done, we
lose 36 bytes of code for some reason.
/external/mesa3d/src/gallium/drivers/vc4/vc4_job.c
ab80519b3cd08401dff2d07343064a27f32b33ca 30-Jun-2015 Eric Anholt <eric@anholt.net> vc4: Add perf debug for when we wait on BOs.
/external/mesa3d/src/gallium/drivers/vc4/vc4_job.c
9adcd2d80aceec90b9c3712b53d8e7839dc5634b 10-Jun-2015 Eric Anholt <eric@anholt.net> vc4: Move RCL generation into the kernel.

There weren't that many variations of RCL generation, and this lets us
skip all the in-kernel validation for what we generated.
/external/mesa3d/src/gallium/drivers/vc4/vc4_job.c
e214a596352e67c89ce379a1e5a060dbc1ce31e1 06-Apr-2015 Eric Anholt <eric@anholt.net> vc4: Separate out a bit of code for submitting jobs to the kernel.

I want to be able to have multiple jobs being set up at the same time (for
example, a render job to do a little fixup blit in the course of doing a
render to the main FBO).
/external/mesa3d/src/gallium/drivers/vc4/vc4_job.c