History log of /external/mesa3d/src/gallium/drivers/vc4/vc4_cl.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ebf33e577aee00cf888c79e11a3b62c181b46510 04-Jan-2017 Eric Anholt <eric@anholt.net> vc4: Flush the job early if we're referencing too many BOs.

If we get up toward 256MB (or whatever the CMA area size is),
VC4_GEM_CREATE will start throwing errors. Even if we don't trigger
that, when we flush the kernel's BO allocation for the CLs or bin
memory may end up throwing an error, at which point our job won't get
rendered at all.

Just flush early (half of maximum CMA size) so that hopefully we never
get to that point.
/external/mesa3d/src/gallium/drivers/vc4/vc4_cl.c
52d2b28f7f107fbaff023533a15058055fa73bf0 07-Oct-2016 Marek Olšák <marek.olsak@amd.com> ralloc: use rzalloc where it's necessary

No change in behavior. ralloc_size is equivalent to rzalloc_size.
That will change though.

Calls not switched to rzalloc_size:
- ralloc_vasprintf
- glsl_type::name allocation (it's filled with snprintf)
- C++ classes where valgrind didn't show uninitialized values

I switched most of non-glsl stuff to rzalloc without checking whether
it's really needed.

Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Tested-by: Edmondo Tommasina <edmondo.tommasina@gmail.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/gallium/drivers/vc4/vc4_cl.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_cl.c
7432017f65174e82a3de7afef3e4e6f60932356c 10-Jul-2015 Eric Anholt <eric@anholt.net> vc4: Rework cl handling to be friendlier to the compiler.

Drops 680 bytes of code, from avoiding a bunch of extra updates to the
next pointer in the struct.
/external/mesa3d/src/gallium/drivers/vc4/vc4_cl.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_cl.c
229bf4475ff0a5dbeb9bc95250f7a40a983c2e28 22-Dec-2014 Eric Anholt <eric@anholt.net> vc4: Optimize CL emits by doing size checks up front.

The optimizer obviously doesn't have the ability to rewrite these to skip
the size checks per call, so we have to do it manually.

Improves a norast benchmark on simulation by 0.779706% +/- 0.405838%
(n=6087).
/external/mesa3d/src/gallium/drivers/vc4/vc4_cl.c
667719fcb2296d73e1897d4071da6dd30b2cc6ac 15-Dec-2014 Eric Anholt <eric@anholt.net> vc4: Fix leaks of the CL contents.
/external/mesa3d/src/gallium/drivers/vc4/vc4_cl.c
027d730aff4abf89f8c01049d245c670c6740a26 31-Jul-2014 Eric Anholt <eric@anholt.net> vc4: Keep a reference to BOs queued for rendering.

Otherwise, once we're not flushing at the end of every draw, we'll free
things like gallium resources, and free the backing GEM object, before
we've flushed the rendering using it to the kernel.
/external/mesa3d/src/gallium/drivers/vc4/vc4_cl.c
a3cd3c0d198374647df3db83198e8ce0cddcb6b7 18-Jul-2014 Eric Anholt <eric@anholt.net> vc4: Switch simulator to using kernel validator

This ensures that when I'm using the simulator, I get a closer match to
what behavior on real hardware will be. It lets me rapidly iterate on the
kernel validation code (which otherwise has a several-minute turnaround
time), and helps catch buffer overflow bugs in the userspace driver
faster.
/external/mesa3d/src/gallium/drivers/vc4/vc4_cl.c
1850d0a1cbf044dc4d29b7a9ede2c634f667d853 19-Jun-2014 Eric Anholt <eric@anholt.net> vc4: Initial skeleton driver import.

This mostly just takes every draw call and turns it into a sequence of
commands that clear the FBO and draw a single shaded triangle to it,
regardless of the actual input vertices or shaders. I copied the initial
driver skeleton mostly from freedreno, and I've preserved Rob Clark's
copyright for those. I also based my initial hardcoded shaders and
command lists on Scott Mansell (phire)'s "hackdriver" project, though the
bit patterns of the shaders emitted end up being different.

v2: Rebase on gallium megadrivers changes.
v3: Rebase on PIPE_SHADER_CAP_MAX_CONSTS change.
v4: Rely on simpenrose actually being installed when building for
simulation.
v5: Add more header duplicate-include guards.
v6: Apply Emil's review (protection against vc4 sim and ilo at the same
time, and dropping the dricommon drm bits) and fix a copyright header
(thanks, Roland)
/external/mesa3d/src/gallium/drivers/vc4/vc4_cl.c