| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Now you don't need to qpu_inst() your instruction with a NOP to get the
other waddr set.
|
|
|
|
|
|
| |
Now that qpu_inst() ignores the WADDR from the other half of the
instruction, we can set both the ADD and MUL WADDRs in the NOP helper.
Thanks to that, we also no longer need to qpu_inst(NOP, NOP).
|
|
|
|
|
|
| |
This allows setting the opposite-side WADDR to NOP (a non-zero value) in
qpu_* helpers, so that we don't need to qpu_inst() merge them with NOPs
all the time just to get the waddr set.
|
|
|
|
|
| |
We were using the integer sub, which worked for the common case of EQ and
NE. Fixes fs-lessThan-ivec2-ivec2 and other tests.
|
|
|
|
|
|
| |
When I made the shader cache take the .fs member and moved the binding
point to .bind_fs, I failed to update these. Fixes crashes in
copyteximage-related tests.
|
|
|
|
| |
Fixes valgrind complaints from valgrind being unaware of our ioctls.
|
|
|
|
|
|
| |
Fixes piglit glsl-fs-discard-01 and -03, and allows a lot of mesa demos to
start running. glsl-fs-discard-02 has a problem where the first tile is
not getting stored on the first render.
|
| |
|
|
|
|
|
|
| |
The simulator assertion fails when you read-before-write a temporary
value, and there's no point in doing the packing if there was no color
written.
|
|
|
|
|
|
|
| |
This should improve performance on real hardware by allowing more shader
instances to run in parallel. It also fixes assertion failures in tests
that don't emit a fragment color, since otherwise we didn't have enough
instructions to fit our signals in.
|
|
|
|
|
|
|
| |
If we didn't truncate at all, then we don't need to fix for truncation
happening in the wrong direction.
Fixes piglit builtin-functions/*-floor-*
|
|
|
|
|
|
|
|
|
| |
The spec citation talked about A and B, and I proceeded to pay no
attention to whether the waddrs were for A or B. As a result, this pair
of instructions would claim to conflict:
mov ra4, ra4 ; nop nop, r0, r0
mov.ns ra4, rb4 ; nop nop, r0, r0
|
|
|
|
|
|
|
| |
Now that tiling is in place, we can expose the other formats. Depth is
still broken (need to make changes in the shader), but if you don't expose
it things crash all over. SNORM is dropped, but we could re-add it later
with some shader fixes to handle converting between [0,1] and [-1,1].
|
|
|
|
|
|
| |
This still treats everything as RGBA8888 for the most part, same as
before. This is a prerequisite for handling other texture formats, since
only RGBA8888 has a raster-layout mode.
|
|
|
|
|
|
| |
It meant that LUMALPHA was being marked as *many* miplevels, and
unsurprisingly wouldn't validate. On the other hand, some miplevel counts
wouldn't get the small mips validated at all.
|
| |
|
|
|
|
|
| |
It doesn't matter to this code -- the sampler always returns 8-bit unorm
rgba.
|
|
|
|
|
| |
There are a few tools I want to have always available, and fprintf() and
abort() are among them.
|
|
|
|
|
| |
This commit and the last one fix ARB_fragment_program/sparse-samplers and
6 other tests.
|
|
|
|
| |
Part of fixing ARB_fragment_program/sparse-samplers
|
|
|
|
|
|
| |
Reviewed-by: Ilia Mirkin <[email protected]>
Reviewed-by: Roland Scheidegger <[email protected]>
Signed-off-by: Tobias Klausmann <[email protected]>
|
|
|
|
|
| |
Fixes swapped colors on the copypix demo and some piglit tests like
pbo-teximage-tiling .
|
|
|
|
|
|
|
| |
The SWIZZLE_1 of the winsys destination was dereffing off the end of the
array, which surprisingly often worked out (since nobody reads the
rendered value anyway, so whatever junk was referenced in the QIR didn't
matter), but shader dumping would sometimes segfault.
|
|
|
|
|
| |
I want to reuse this elsewhere, and NONE debug output hasn't been useful
so I don't miss it being as detailed as it was before.
|
|
|
|
|
| |
This gets fbo-colormask-formats working for core formats, which increases
my confidence in some of the swizzle and blend handling.
|
| |
|
|
|
|
|
| |
This almost fixes fbo-generatemipmap rendering, except that the 1x1 level
isn't getting rendered.
|
|
|
|
|
|
|
| |
We weren't accounting for the level 0 offset in the texture setup (so it
only worked if it happened to be a single-level texture), and doing so
required that we get the level 0 offset page aligned so that the offset
bits don't get interpreted as the texture format and such.
|
|
|
|
|
|
|
|
|
|
|
| |
I had the right viewports in vc4_emit.c, but grabbed the wrong values in
the uniform setup, so primitives would claim to be in the wrong parts of
the screen. (The vc4_emit.c state looks like it just decides how big the
clipping guardband is).
This gets fbo-viewport closer to working (which still has the problem that
the HW is always guard-band clipping), and fixes inverted FBO rendering in
general.
|
|
|
|
|
|
| |
Suggested-by: Eric Anholt <[email protected]>
Signed-off-by: Emil Velikov <[email protected]>
Reviewed-by: Eric Anholt <[email protected]>
|
|
|
|
|
|
|
|
| |
Passes blendminmax and blendsquare. glean's more serious blendFunc fails
in simulation due to binner memory overflow (I really need to work around
that), and fbo-blending-formats fails due to Mesa refusing one of the
getter requests, even before it could fail due to the driver not actually
supporting different formats yet.
|
|
|
|
|
|
|
|
| |
The hw_mask is the set of primitives you actually support, so this attempt
to provide the set of formats that's unsupported was wrong in two ways (it
was intended to be '~' not '!'). However, we only call this code when
prim isn't one of the actually supported hw_mask bits, so missing out on
the memcpy didn't matter anyway.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
We were triggering simulator assertion failures for not consuming these,
and presumably we want to actually make use of them some day (for things
like point/line antialiasing)
Note that this has the qreg index as 0, which is the same index as the
first GL varyings read. This doesn't matter currently, since that number
isn't used for anything except dumping.
|
|
|
|
|
|
|
| |
At some point I'm going to want to move the information necessary for the
host buffer upload/download into the BO so that it's independent of the
current vc4->framebuffer, but for now this fixes pointless derefs on
non-simulator in vc4_context.c since the dump_fbo() removal
|
|
|
|
|
| |
Cc: Eric Anholt <[email protected]>
Signed-off-by: Emil Velikov <[email protected]>
|
|
|
|
|
|
|
| |
Signed-off-by: Ilia Mirkin <[email protected]>
Reviewed-by: Marek Olšák <[email protected]> (v1)
Reviewed-by: Roland Scheidegger <[email protected]> (v1)
v2: Reuse opcode gaps as suggested by Marek
|
|
|
|
|
| |
Now that eglkms is working, and some tests are working under
PIGLIT_PLATFORM=gbm, I don't think I need this any more.
|
|
|
|
|
|
|
| |
We don't actually do them (or even fake them) currently, but it does get
us a bunch of unrelated glean glsl1 tests passing, which previously would
error out due to glean assuming the minimums on a 3D texture that 2 of the
subtests use.
|
|
|
|
|
| |
We will support more than this eventually, but for now this makes u_vbuf
format-convert a few things (32-bit snorm and scaled, doubles) for us.
|
|
|
|
|
|
| |
This can be useful for looking at context init setup and texture format
choices, and there's no reason for the silly retval computation we do if
you're not going to have this code (mostly from freedreno) around.
|
|
|
|
| |
This was inherited from freedreno, but doesn't apply to us.
|
|
|
|
| |
It's 2048x2048 that's the max, not 1024x1024.
|
| |
|
|
|
|
| |
This mostly fixes glxgears rendering.
|
|
|
|
| |
This gets glxgears partially rendering again.
|
|
|
|
|
|
|
| |
This isn't passing all tests (glsl-fs-fragcoord-zw-ortho, for example),
but it does get a bunch more tests passing.
v2: Rebase on helpers change.
|
|
|
|
| |
This makes some space for handling special inputs like fragcoords.
|
|
|
|
|
|
|
| |
This prevents some simulator assertion failures, but it does mean (since
I've dropped the "* 16" padding) that on real hardware you need a kernel
that does overflow memory management (currently, "drm/vc4: Add support for
binner overflow memory allocation." in my kernel tree).
|