History log of /external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
5debfeb86f524b06aa3b80f9855947a57b5f91e8 11-Nov-2016 Jonas Pfeil <pfeiljonas@gmx.de> vc4: Add simulator kernel validation for multithreaded fragment shaders.

This is Jonas Pfeil's code from the kernel, brought back to Mesa by
anholt.
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
80157466cd56bfaeadbdcac497b04c16c2732a3b 06-Jan-2015 Eric Anholt <eric@anholt.net> vc4: Add miptree/texture state support for ETC1 compressed textures.

The format isn't flagged as enabled at runtime yet, because we need kernel
validation support.
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
54800bb71c874bc7e9953a2e6d29ea53915f5be7 15-Mar-2016 Eric Anholt <eric@anholt.net> vc4: Add kernel support for branching in shader validation.

We're already checking that branch instructions are within the
contents of the shader and the proper PROG_END sequence is present.
The other thing we need in the presence of branching is to verify that
the shader doesn't overflow past the end of the uniforms stream.

To do that, we require that at the start of any basic block reading
uniforms have the following instructions:

load_imm temp, <offset within uniform stream>
add unif_addr, temp, unif

The instructions are generated by userspace, and the kernel verifies
that the load_imm is of the expected offset, and that the add adds it
to a uniform. We track which uniform in the stream that is, and at
draw call time fix up the uniform stream to have the address of the
start of the shader's uniforms for that draw call.

Signed-off-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
e7c8ad0a6c8ba263f29b7c3c5120bc6beabeba7b 21-Jun-2015 Eric Anholt <eric@anholt.net> vc4: Add kernel RCL support for MSAA rendering.
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
1529f138fff59bdb857d5f7da0ee2537521d5044 07-Dec-2015 Eric Anholt <eric@anholt.net> vc4: Fix compiler warning from size_t change.

I missed this when bringing over the kernel changes.
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
0afe83078d10e0d376f7c3e2515ab2682fec0eb1 05-Dec-2015 Eric Anholt <eric@anholt.net> vc4: Bring over cleanups from submitting to the kernel.
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
c93ffd661a46f0f6d20c9ec2e97d4d9393e28111 29-Jul-2015 Eric Anholt <eric@anholt.net> vc4: Mark our shaders as single-threaded.

I had my understanding of this bit flipped. We're using the full register
space, so we need to say so.
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
86541cf8cea77f4b887dd061e7d6e3e4767f86fd 29-Jul-2015 Eric Anholt <eric@anholt.net> vc4: Avoid overflowing various static tables.
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
d0173bce371e3aafa732600c1456a9282ff5d900 29-Jul-2015 Eric Anholt <eric@anholt.net> vc4: Fix return values from recent validation changes.
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
1f5e070dd7ddd344a913f2f5daddebb4c51abb8a 28-Jul-2015 Eric Anholt <eric@anholt.net> vc4: Simplify vc4_use_bo and make sure it's not a shader.

Since the conversion to keeping validated shaders around for the BO's
lifetime, we haven't been checking that rendering doesn't happen to
shaders. Make vc4_use_bo check that always, and just don't use it for the
VC4_MODE_SHADER case (so now modes are unused)
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
044f7bbda077ea7029fb1004183b29127307bd84 28-Jul-2015 Eric Anholt <eric@anholt.net> vc4: Keep the validated shader around for the simulator execution.

This more closely matches the kernel behavior on shader validation now.
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
22954db71cd1d8d9ef6e5a16f568e4b3c7845777 28-Jul-2015 Eric Anholt <eric@anholt.net> vc4: Make the object be the return value from vc4_use_bo().

Drops 40 bytes of code from validation.
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
cbb7477e8a796211b664ff7e47334cb1b642556d 28-Jul-2015 Eric Anholt <eric@anholt.net> vc4: Ensure that the bin CL is properly capped by increment/flush.

We don't want anything to appear after we've kicked off the render (and
thus job flush), since that might then get written out to the tile
allocation state.

Signed-off-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
601733da6708722ceedd35afc7727c28779012f7 28-Jul-2015 Eric Anholt <eric@anholt.net> vc4: Drop NV shader reloc validation.

It wasn't validating enough, and we don't need the packet.
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
5341349dde6f5c70af188e48ef0082e6e7d5361f 17-Jul-2015 Eric Anholt <eric@anholt.net> vc4: Add debugging on texture relocation validation failures.
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
1d45e44b2f9e52d6eebe84ab08da6b7393011f95 17-Jun-2015 Eric Anholt <eric@anholt.net> vc4: Move tile state/alloc allocation into the kernel.

This avoids a security issue where userspace could have written the tile
state/tile alloc behind the GPU's back, and will apparently be necessary
for fixing stability bugs (tile state buffers are missing some top bits
for the tile alloc's address).
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.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/kernel/vc4_validate.c
731ac05cc4e444175288032a76a29c95059af038 12-Jun-2015 Eric Anholt <eric@anholt.net> vc4: Use VC4_SET/GET_FIELD for some RCL packets.
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
e22a1927844cdda499ea15f539028c16e47394ea 10-Jun-2015 Eric Anholt <eric@anholt.net> vc4: Make symbolic values for packet sizes.
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
c2f82876014c9acb0518cf31a6f675fcc73c955a 10-Jun-2015 Eric Anholt <eric@anholt.net> vc4: Use symbolic values in texture ptype validation.
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
e67b12eaf89acc9c446de77b77120a2f6cdbbe12 01-Jun-2015 Eric Anholt <eric@anholt.net> vc4: Update to current kernel validation code.

After profiling on real hardware, I found a few ways to cut down the
kernel overhead.
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
76d56752ccff5bca3a0808705d5da76f186afb33 09-Apr-2015 Eric Anholt <eric@anholt.net> vc4: Allow submitting jobs with no bin CL in validation.

For blitting, we want to fire off an RCL-only job. This takes a bit of
tweaking in our validation and the simulator support (and corresponding
new code in the kernel).
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
d04b07f8e2eb61bb389f2d6b8ed0a501952466ee 09-Apr-2015 Eric Anholt <eric@anholt.net> vc4: Fix off-by-one in branch target validation.
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
725620f21d19365d7a8a34d0c72694384c680afc 09-Apr-2015 Eric Anholt <eric@anholt.net> vc4: Sync with kernel changes to relax BCL versus RCL validation.

There was no reason to tie the two packets' values together.
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
b3ea377f8629ada57c67632a89f0d2e9d2faf23c 24-Mar-2015 Eric Anholt <eric@anholt.net> vc4: Write the alignment of level width consistently in validation.

16 / cpp happens to be the same as utile_w on the only raster format
supported (4 bytes per pixel), but simulator/hw source code generally
talks in terms of utiles.
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
49d3c6a8e63ead43fafb7d52e2c770a1320eb2ee 23-Feb-2015 Eric Anholt <eric@anholt.net> vc4: Update to current kernel sources.

New BO create and mmap ioctls are added. The submit ABI gains a flags
argument, and the pointers are fixed at 64-bit. Shaders are now fixed at
the start of their BOs.
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
82e919d33bbe508b3e1ba883a01ef2512dbc8f72 18-Nov-2014 Eric Anholt <eric@anholt.net> vc4: Emit semaphore instructions for new kernel ABI.

Previously, the kernel would dispatch thread 0, wait, then dispatch thread
1. By insisting that the thread contents use semaphores in the right
place, the kernel can sleep for longer by dispatching both threads at
once.
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
f87c7008958cdb095efa1cfb29ca8f3c9b9066e4 02-Oct-2014 Eric Anholt <eric@anholt.net> vc4: Add support for ARL and indirect register access on TGSI_FILE_CONSTANT.

Fixes 14 ARB_vp tests (which had no lowering done), and should improve
performance of indirect uniform array access in GLSL.
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
5539a5b68518914af7e1b97b6a7f57961cdf21f2 29-Oct-2014 Eric Anholt <eric@anholt.net> vc4: Fix mixup of return type in reloc_tex().
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
6576dc1e9264865c59b569ecb13f2fe439620f6c 24-Oct-2014 Eric Anholt <eric@anholt.net> vc4: Fix a couple missing '\n's in error output.
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
1f7048419ed6ad4d25e89efa885fdc58d36c4213 17-Oct-2014 Eric Anholt <eric@anholt.net> vc4: Fix accidental dropping of the low bits of the store tilebuffer packet.

Notably this included the EOF flag (the other bits are the full buffer
dump selection, but we don't do full dumps), which caused the kernel
checking for frame completion to trigger.
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c
0b96a086cbb4bcf0a5aab1fee6d77c1e40295297 01-Oct-2014 Eric Anholt <eric@anholt.net> vc4: Move the mirrored kernel code to a kernel/ directory.

Now this whole setup matches the kernel's file layout much more closely.
/external/mesa3d/src/gallium/drivers/vc4/kernel/vc4_validate.c