Eric Anholt
4c24c8239a
panfrost: Fix remaining release-build warnings.
...
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6462 >
2020-08-28 22:45:08 +00:00
Eric Anholt
ecab580d48
panfrost: Fix OOB array access compiler warning.
...
-1 is used to select "choose the dest type", but we were dereffing src[-1]
anyway and the compiler is not a fan.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6462 >
2020-08-28 22:45:08 +00:00
Eric Anholt
ccb5e0b02b
drm-shim: Fix unused variable warnings from asserts in release build.
...
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6462 >
2020-08-28 22:45:08 +00:00
Rob Clark
8d1d0c126f
freedreno/a6xx: move ubwc clear to blitter
...
Avoid having to mmap() unnecessarily by moving UBWC clear/init to
blitter.
Because we don't have a context when the bo is allocated, we need to
lazily initialize UBWC data, so hook into the resource_written()
tracking to do this. Don't bother with resource_read() because that
would be undefined anyways.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6475 >
2020-08-28 22:24:25 +00:00
Rob Clark
8d9ab0a33b
freedreno/a5xx+a6xx: use sysmem path for nondraw batches
...
For prologue's in the nondraw path, we need a "gmem" rb that we can emit
the IB to the prologue before the main part of the batch. This has the
side benefit of cleaning up a bunch of duplicate setup code in a5xx.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6475 >
2020-08-28 22:24:25 +00:00
Rob Clark
21b90708a4
freedreno/batch: replace lrz_clear with prologue
...
Replace lrz_clear with the more general purpose prologue rb. While the
epilogue is per-tile (in gmem mode), the prologue is per-batch, so also
add some comments to make that point more clear.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6475 >
2020-08-28 22:24:25 +00:00
Rob Clark
28079970f2
freedreno/batch: split out helper for rb alloc
...
Going to want to re-use this in next patch.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6475 >
2020-08-28 22:24:25 +00:00
Boris Brezillon
9522eb7be1
panfrost: Store transient BOs in a dynamic array
...
We clearly don't need a hash here since we're never searching for BOs
that are in a pool.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6494 >
2020-08-28 19:18:08 +00:00
Boris Brezillon
d87ab72ce9
panfrost: Avoid accessing pan_pool fields directly
...
Having panfrost_batch access the pan_pool fields directly makes it hard
to change pan_pool internals, like for instance, changing the hash table
for a dynamic array. Let's hide pan_pool internals behind helpers that do
what we need.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6494 >
2020-08-28 19:18:08 +00:00
Boris Brezillon
4047c691bf
panfrost: Rename panfrost_create_pool() into panfrost_pool_init()
...
_create functions usually allocate an object and return a pointer to the
allocated object, _init ones usually take an existing object and
initialize it. Let's follow this semantic here by renaming the
panfrost_create_pool() function and updating its prototype.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6494 >
2020-08-28 19:18:08 +00:00
Daniel Stone
b8f2d71c40
CI: Disable Windows again
...
We thought HTTP was stable after nginx changes, but sadly it isn't.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6495 >
2020-08-28 19:08:39 +01:00
Alyssa Rosenzweig
7fbded8b58
pan/decode: Drop prefix braces
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
eb261a8018
panfrost: Remove mali_vertex_tiler_postfix
...
Now XMLified everywhere.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
760289174b
pan/decode: Use unpack for vertex_tiler_postfix_pre
...
Garbage collect some old incorrect/misleading comments and the braces
while we're at it.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
2425bac8fe
pan/decode: Use generation for vertex_tiler_postfix
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
8004906926
pan/decode: Fix awkward syntax
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
c088a3b554
pan/decode: Print shader-db even for compute
...
Stated rationale is silly.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
6855228726
pan/decode: Drop mali_vertex_tiler_postfix arg
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
38ae088565
pan/decode: Drop scratchpad size dump
...
It fails if the scratchpad isn't actually mapped from pandecode's
perspective, and isn't useful information to us at this point.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
c92be29a47
panfrost: Use nir_builder_init_simple_shader for blits
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
4467e792c5
panfrost: Inline bifrost_tiler_only
...
Pointless abstraction now that fused jobs are dropped.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
0c1f44bab7
panfrost: Drop bifrost_payload_fused
...
Fused jobs are broken for various reasons almost everywhere. Drop the
reference - if for some reason somebody wants this later, it's preserved
in git.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
02e768e6a9
panfrost: XMLify invocations
...
Not so bad :)
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
0225ed4d72
panfrost: Add invocation XML
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
b60d567edd
panfrost: XMLify primitive information
...
This is grouped as the latter part of the prefix. Some kludges around a
magic field for compute jobs that we'll deal with later. (I hope.)
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
3bae493d1a
panfrost: Drop point sprite from shader key
...
It's not implemented on Bifrost, and not needed on Midgard. For Bifrost
this will belong in mesa/st anyway.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
b17b6cca36
panfrost: Cleanup point sprite linking
...
Use the common Gallium helper, and get the sprite coord mask from the
rasterizer instead of the shader state (which requires useless keying).
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
7d328e7ba9
panfrost: Simplify ZSA bind
...
void* casts are implicit.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
90cc815628
panfrost: Use pack for draw descriptor
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
33895ac2c8
panfrost: Use draw pack for compute jobs
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
e5c77cbead
panfrost: Detangle postfix from varying emits
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
3a4d930571
panfrost: Inline panfrost_vt_set_draw_info
...
Not happy about the monster routine, but we'll get simplification having
everything together. (I hope.)
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
3f61da79c3
panfrost: Inline panfrost_vt_init
...
Again, we'd like to keep the routines filling out the postfix together,
and this has a single remaining caller (once for vertex then immediately
for tiler).
By keeping them together we can avoid uploading the shared
memory/framebuffer structures twice in a row, saving a bit of memory in
the process.
We also fix a bug where bit 2 of gl_enables is incorrectly set on
Bifrost.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
136fd5cd2e
panfrost: Don't call panfrost_vt_init for compute
...
Given we emit shared memory immediately after anyway, the function call
doesn't do anything but zero-initializing the payload and setting some
magic bits. We can do that ourselves at the call site.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
1513392e77
panfrost: Avoid postfix dep for vertex_data
...
We need to thread some extra data through the context but still gets us
a bit closer.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
8b5f9fc08a
panfrost: Remove postfix parameter from UBO upload
...
Need to signal push constants via a side channel. I tried to disentangle
this code, but there are a number of stacked issues here:
* We need to upload sysvals. Currently we prefix UBO #0 with sysvals,
but this requires a memcpy() of the entire contents of UBO #0 . We
could create a synthetic UBO instead with sysvals at the end.
* We want to push uniforms/sysvals. Currently we push UBO #0 as much as
we can, which pushes sysvals automatically by point 1.
* We want to optimize out f2f16(uniform). We don't currently handle
this.
* We want to optimize out uniform-on-uniform/constant operations. Mesa
doesn't currently have good support for this.
The real solution will look something like:
* Create a separate UBO for sysvals.
* Let the compiler allocate push constant space as it sees fit ("copy
word 12:15 of UBO 1 to word 2:3 of push constant space, as fp16").
* Somehow handle uniform folding when NIR gains support.
For now, let's not block the depostfixening.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
1357eec801
panfrost: Inline vt_update_{rasterizer, occlusion}
...
These are simple enough that the abstraction will get in the way of the
upcoming refactor. Let's keep all the state together.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
b7169367fd
panfrost: Separate postfix from emits
...
This is the easy subset, where we have functions that take in a postfix
pointer but only to use as a return address. We can use an actual return
instead, which is a bit simpler and helps prepare for condensed postfix
packing.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
59b6e3c98c
panfrost: Use draw pack for blit
...
Something easy to start us off for the series.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
d6a5df0db0
panfrost: Add XML for mali_vertex_tiler_postfix
...
This is a bit of everything but overall sets up the draw state.
Translating fairly directly from the header. Main structural change is
breaking out a 2-bit enum for occlusion query mode instead of
maintaining separate booleans for the modes.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
e213a864e5
panfrost: Add padded type for instance fields
...
Mali has a special 5:3 encoding representing a subset of the natural
numbers, of the form:
a * (2^b)
for a odd and b natural/zero. It is used for padding out instance sizes,
as well as in attribute records so it's worth representing as a native
type as opposed to having manual packs/unpacks in various places.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
45c59db732
panfrost: Drop blend indirection
...
We don't need to ralloc/memcpy/free, we can emit all at once when we
have proper write ordering gaurantees.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:53 +00:00
Alyssa Rosenzweig
87e35102dd
panfrost: Emit explicit REPLACE for disabled colour writeout
...
Likewise zero for Bifrost. Avoids UB behaviour in next commit.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:52 +00:00
Alyssa Rosenzweig
75a274de06
panfrost: Add opaque midgard_blend XML
...
Just to ensure write ordering is sane.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476 >
2020-08-28 14:53:52 +00:00
Daniel Stone
0e13f803af
CI: Re-enable VS2019 build
...
Now that we have a more powerful runner and a more stable Docker
configuration, try re-enabling the Windows build.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6446 >
2020-08-28 10:15:40 +00:00
Daniel Stone
a2808108e8
CI: Windows: Use separate config file for Docker
...
Rather than relying on global state for 'docker login' credentials, use
a local file so we don't collide with other simultaneous builds.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6446 >
2020-08-28 10:15:40 +00:00
Eric Engestrom
f4c1c21306
egl: simplify eglSwapInterval() fallback logic
...
Signed-off-by: Eric Engestrom <eric@engestrom.ch >
Reviewed-by: Emil Velikov <emil.velikov@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6153 >
2020-08-28 08:55:06 +00:00
Eric Engestrom
1d3fb7a7a7
egl: inline eglSwapInterval() fallback
...
It's literally just a `return EGL_TRUE`, there's no need to have
a function for that.
Signed-off-by: Eric Engestrom <eric@engestrom.ch >
Reviewed-by: Emil Velikov <emil.velikov@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6153 >
2020-08-28 08:55:06 +00:00
Lionel Landwerlin
957bbc6ad9
anv: simplify push constant emissions
...
Instead of allocating a push constant buffer per stage from the
dynamic state pool, we can use the same one for all stages.
We can do this because the push constant data is supposed to be
identical of all stages. Even if vkCmdPushConstants() allows to update
chunks of the push constant data differently per stage, this valid
usage guarantees that any chunk of push constant data used be 2
different stages must be identical :
"For each byte in the range specified by offset and size and for
each push constant range that overlaps that byte, stageFlags must
include all stages in that push constant range’s
VkPushConstantRange::stageFlags"
v2: Fix dirtying of stages (Jason)
v3: Move push constant data into base pipeline state struct (Jason)
v4: Remove duplicated field (Jason)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6183 >
2020-08-28 09:58:46 +03:00
Lionel Landwerlin
7953402e57
anv: move push constant allocation tracking into gfx pipeline state
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6183 >
2020-08-28 09:58:43 +03:00