| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
I typoed and was depending on v3d_xml.h (the gzipped xml)_, not on the
v3d_packet_v33_pack.h that the compiler and QPU packing actually use.
|
|
|
|
| |
See e5fea0d621af2b14cf6c5e364eeaf293db460f2a
|
|
|
|
|
|
|
|
| |
A bit of spec text suggested that (like vc4) condition codes should be
used for discards, and the simulator was fine with it, but the 7268
disagrees and you have to use SETMSF instead or the color comes through.
Fixes glsl-fs-discard-01 and many of the interpolation-with-clipping
tests.
|
|
|
|
|
|
| |
We don't have native instructions for them, so set up the lowering. Once
we support the bfi instructions that get generated, they should start
actually working.
|
|
|
|
|
|
|
|
| |
It's redundant with nir_shader::info::stage.
Acked-by: Timothy Arceri <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Reviewed-by: Jordan Justen <[email protected]>
|
|
|
|
|
|
|
| |
v2: Default vc5 to off, since it requires the simulator currently. Add
missing dep on the XML generation from libbroadcom_vc5.
Reviewed-by: Dylan Baker <[email protected]> (v1)
|
|
|
|
| |
Reviewed-by: Dylan Baker <[email protected]>
|
|
|
|
|
| |
The specs don't say you can't, but pairing it with an SFU write on the
7268 breaks all our simple shader tests using gl_MVP * gl_Vertex.
|
| |
|
|
|
|
| |
Fixes arb_color_buffer_float-clear
|
|
|
|
|
| |
This controls the RTs that get stored by the default resolved store, the
same way that the extended resolved store packet has a RT bitmask.
|
|
|
|
|
| |
The TLB write code is getting ugly and needs a refactoring (that will
hopefully handle TLBU uniform coalescing as well).
|
|
|
|
| |
We now emit as many TLB color writes as there are color buffers.
|
|
|
|
|
| |
The bit was missing from the spec, but it's there in the simulator. Fixes
the piglit clipflat test.
|
|
|
|
|
| |
The TF enable state appears to stick around until the next TF enable
packet is sent, so we only want to request TF when the shader is using it.
|
|
|
|
| |
I missed the "- 1" when reading the spec.
|
|
|
|
|
| |
The interpolation qualifier, if specified, is supposed to take precedence
over glShadeModel().
|
|
|
|
|
|
|
| |
The HW will halt when you hit a HALT packet, or when you hit the end
address. Tell CLIF if there's an end address is so that it can stop
correctly. (There was usually a 0 byte after the CL, so it would stop
anyway).
|
|
|
|
|
| |
I had misread the packet description: We always have a 32f depth, and a
separate u8 stencil.
|
|
|
|
|
|
|
|
| |
In order to keep early-Z from writing early in a discard shader, you need
to set the "modifies Z" bit in the shader state (which the new
prog_data.discards will indicate). Then, in the shader we do a TLB write
to make Z passthrough happen (the QPU result is ignored, so we use a NULL
source).
|
|
|
|
| |
We don't want to write Z for discarded fragments.
|
| |
|
|
|
|
| |
This lets us do index_bias and ARB_base_instance.
|
|
|
|
| |
We're going to need these for MSAA, and to use the generic per-tile list.
|
|
|
|
|
|
| |
These existed so I could unpack just the sub-id field to switch on in the
old manual CLIF dumper. The new codegen handles sub-id automatically, but
only if these stub packets aren't there with an implicit sub-id=0.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This is a pretty straightforward fork of VC4's NIR compiler to VC5. The
condition codes, registers, and I/O have all changed, making the backend
hard to share, though their heritage is still recognizable.
v2: Move to src/broadcom/compiler to match intel's layout, rename more
"vc5" to "v3d", rename QIR to VIR ("V3D IR") to avoid symbol conflicts
with vc4, use new v3d_debug header, add compiler init/free functions,
do texture swizzling in NIR to allow optimization.
|
|
|
|
|
|
|
|
| |
This will be usable with "VC5_DEBUG=cl" on the vc5 driver to stream a CLIF
file (the Broadcom equivalent of i965's AUB) to stderr. I haven't tested
that this is actually usable with the internal CLIF-consuming tools, but
is close enough as a baseline and is useful for visually inspecting the
command stream.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Unlike VC4, I've defined an unpacked instruction format with pack/unpack
functions to convert to 64-bit encoded instructions. This will let us
incrementally put together our instructions and validate them in a more
natural way than the QPU_GET_FIELD/QPU_SET_FIELD used to.
The pack/unpack unfortuantely are written by hand. While I could define
genxml for parts of it, there are many special cases (like operand order
of commutative binops choosing which binop is being performed!) and it
probably wouldn't come out much cleaner.
The disasm unit test ensures that we have the same assembly format as
Broadcom's internal tools, other than whitespace changes.
v2: Fix automake variable redefinition complaints, add test to .gitignore
|
|
|
|
|
|
|
| |
Unlike vc4, where the compiler and gallium driver live together, for vc5
the compiler will live up in the shared broadcom directory, and need
access to the debug flags. Define a set of debug flags and helpers there,
so it can be shared between compiler, vc5, and vulkan.
|
|
|
|
|
| |
Reviewed-by: Eric Anholt <[email protected]>
Fixes: 5b102160ae ("broadcom/genxml: Introduce a V3D packet/struct decoder.")
|
|
|
|
|
| |
These will be used in tables in the Vulkan driver, and give us pretty CLIF
dump output.
|
|
|
|
|
| |
This basically comes from the intel genxml script. This will help improve
gdb and CLIF output once we convert fields over.
|
|
|
|
|
| |
This will be used by the new vc5 gallium driver, and a future Vulkan
driver.
|
|
|
|
|
|
| |
VC5 introduces packet variants where the same opcode has behavior that is
decided by a sub-id field in the early bits of the packet. Keep iterating
over packets until we find the one with the matching sub-id.
|
|
|
|
|
|
| |
In the vc5 NIR backend, I want to use the XML code-generation to set up
pack/unpack of structs for the texture uniforms, and setting up the
unpacked copy needs a default header.
|
| |
|
|
|
|
|
| |
The Raspbian ARMv6 cross compiler wasn't picking up my (amd64) system copy
of the header the way that the system gcc and armhf cross-compile did.
|
|
|
|
|
|
| |
This keeps the flags out of v3d_decode.c's output. In the generated code,
only the unpack functions see any change (where they now get the
restricted start value), and vc4 doesn't use the unpack functions yet.
|
|
|
|
|
|
|
|
|
|
| |
I was writing the XML such that the address field overlapped various flags
in the alignment bits, which caused pain when trying to unpack for decode.
Instead, keep the XML matching the docs (address fields don't overlap),
and just infer the appropriate shift value during decode.
During pack, the address is just applied to the appropriate bits
already, ignoring the sub-byte start/end fields.
|
|
|
|
|
|
| |
This gets us automatic CL decoding to a floating-point value, and drops a
magic number from the emit code. 250x250 shader runner tests now say they
have a center of 125.0 instead of 2000.
|
|
|
|
|
|
|
| |
This is copied from Intel's XML decoder, modified to handle V3D's
byte-oriented packets.
v2: Squash in robher's fixes for Android
|
|
|
|
| |
This is the same 8-space style used in the vc4 and vc5 gallium drivers.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes `make distcheck`
> make[3]: *** No rule to make target 'common/v3d_devinfo.h', needed by 'distdir'. Stop.
> make[3]: Leaving directory '/home/local/mesa/src/broadcom'
> Makefile:945: recipe for target 'distdir' failed
> make[2]: Leaving directory '/home/local/mesa/src'
> make[2]: *** [distdir] Error 1
> make[1]: *** [distdir] Error 1
Fixes: 427bbbb99c ("broadcom: Introduce a header for talking about chip revisions.")
Cc: Emil Velikov <[email protected]>
Signed-off-by: Andres Gomez <[email protected]>
Reviewed-by: Emil Velikov <[email protected]>
|
|
|
|
| |
These will be used to replace vc4_cl_dump.c's hand-written dumping.
|
|
|
|
|
| |
This will be used by the VC5 driver and various shared VC4/VC5 tooling,
like the XML decoder.
|
|
|
|
| |
This will let us reuse their tools more easily.
|
|
|
|
|
| |
This was an oversight in the original XML support, because unpacking
wasn't used much. The new XML-based CL dumper will want it, though.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since commit 7f80a9ff1312 ("vc4: Introduce XML-based packet header
generation like Intel's."), the vc4 build on Android is broken:
out/target/product/linaro_x86_64/gen/STATIC_LIBRARIES/libmesa_broadcom_genxml_intermediates/broadcom/cle/v3d_packet_v21_pack.h:12:10: fatal error: 'v3d_packet_helpers.h' file not found
external/mesa3d/src/gallium/drivers/vc4/vc4_cl_dump.c:28:10: fatal error: 'vc4_packet.h' file not found
The path of the generated header needs to be fixed since we build out of
tree.
Acked-by: Eric Anholt <[email protected]>
Signed-off-by: Rob Herring <[email protected]>
|
|
|
|
|
|
|
|
|
| |
Ensure vc4_cl_dump.h and $(BROADCOM_FILES) are distributed in the
dist-file.
This fixes `make distcheck`
Reviewed-by: Emil Velikov <[email protected]>
|