Commit graph

141521 commits

Author SHA1 Message Date
Mike Blumenkrantz
18c22f5024 zink: break out offset alignment calculation into helper
Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11437>
2021-06-22 20:57:33 +00:00
Mike Blumenkrantz
d574b0a51e zink: apply zink_resource_object::offset for memory flush/invalidates
Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11437>
2021-06-22 20:57:33 +00:00
Mike Blumenkrantz
d80d9e1c93 zink: queue v3.0
this uses a pointer to a batch state substruct for timeline tracking,
which provides a few nice benefits:
* explicit ability to detect unflushed batches (even on other contexts)
* the context doesn't need to have a "current" timeline id
* timeline (batch) ids can be distributed during submit, not when recording begins
* an abstracted api which can be more easily changed under the hood

Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11437>
2021-06-22 20:57:33 +00:00
Mike Blumenkrantz
28496f6ff2 zink: remove no-longer-used resource helper functions
Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11437>
2021-06-22 20:57:33 +00:00
Mike Blumenkrantz
59ec1794f6 zink: use batch usage api for resource helper function
Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11437>
2021-06-22 20:57:33 +00:00
Mike Blumenkrantz
1226628eb6 zink: add and use fencing functions which take batch usage structs
this hides the exact mechanics of fencing based on batch usage and makes
the usage a bit more explicit

Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11437>
2021-06-22 20:57:33 +00:00
Mike Blumenkrantz
982a2dfbd4 zink: improve tc fence disambiguation
instead of storing separate batch_id values onto the tc fence for matching:
* use a fence pointer on the main context to indicate the current deferred fence
* add a monotonic counter to each batch state which double-increments on each use,
  thereby enabling direct determination by the tc fence as to whether this is the same
  batch state it was created with

Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11437>
2021-06-22 20:57:33 +00:00
Mike Blumenkrantz
618784732a zink: only update last_finished during batch reset if the batch was used
0 is never a valid batch_id, so don't try to update this

minor cosmetic change

Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11437>
2021-06-22 20:57:33 +00:00
Emma Anholt
56c7e69c4d freedreno: Fix leak of the screen hash table.
Now we have no leaks detected on a run of a basic deqp test
(dEQP-GLES2.functional.shaders.constants.const_float_assignment_3_fragment).

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11537>
2021-06-22 20:39:18 +00:00
Dave Airlie
b76f229954 crocus/bufmgr: fix userptr left over fail
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11538>
2021-06-23 06:08:19 +10:00
Dave Airlie
45c12da211 croucs: limit stencil swizzle change to older generations
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11538>
2021-06-23 06:08:19 +10:00
Mike Blumenkrantz
7eb3728e4b zink: clear textures directly when possible
now that overhead for resuming renderpasses has been made mostly nonexistent,
this is by far the better option and cuts cpu usage by ~90% in some cases,
e.g., tomb raider benchmark

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11430>
2021-06-22 19:37:07 +00:00
Dave Airlie
a0608b3efc crocus/gen8: add support for cherryview (env var for bdw)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:21 +00:00
Dave Airlie
c630304196 crocus/gen8: hookup gen8 state generators
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:21 +00:00
Dave Airlie
edf05076a4 crocus/gen8: handle sampler differences
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:21 +00:00
Dave Airlie
661f108d80 croucs/gen8: handle gfx8 surface aux addr reloc.
This is ported from i965

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:21 +00:00
Dave Airlie
12e4da8053 crocus/gen8: port over VFE/compute state changes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:21 +00:00
Dave Airlie
612c30bff7 crocus/gen8: port over ps/wm state changes from iris.
This emits the PS extra packet as well

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:21 +00:00
Dave Airlie
5888b71847 crocus/gen8: port over vs/gs/ds state changes.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:21 +00:00
Dave Airlie
457f21aa91 crocus/gen8: add depth stencil state support
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:21 +00:00
Dave Airlie
524eae8b78 crocus/gen8: add viewport support
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:21 +00:00
Dave Airlie
d12a9eda72 crocus/gen8: add rasterizer state changes.
Port over raster packet and state changes

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:21 +00:00
Dave Airlie
6613c0ac37 crocus/gen8: refactor blend state for gen8
gen8 emits these packets differently, port the i965 style

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:21 +00:00
Dave Airlie
4025c9d340 crocus/gen8: add PS blend command support.
This adds support for new gen8 command

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:21 +00:00
Dave Airlie
22b9063aee crocus/gen8: add VF SGVS support.
This is moved functionality on gen8

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:21 +00:00
Dave Airlie
5b32fccd3f crocus/gen8: add SBE swiz support
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:21 +00:00
Dave Airlie
88bba6a49e crocus/gen8: add streamout support
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:21 +00:00
Dave Airlie
750e0c1ff3 crocus/gen8: add PMA fix from iris
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:21 +00:00
Dave Airlie
786cf437db crocus/gen8: add VF topology support
this is a new command on gen8

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:21 +00:00
Dave Airlie
961ee7e72b crocus/gen8: state base address + misc setup state.
This ports over SBA setup and some misc packets needed to
setup the context

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:21 +00:00
Dave Airlie
515f9f5e40 crocus/gen8: add support for vertex instancing and index buffers.
This ports over the VF instancing code from iris

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:21 +00:00
Dave Airlie
abc990df9b crocus/gen8: add raw pipe control support for gen8 workarounds
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:21 +00:00
Dave Airlie
117fdacc2b crocus/gen8: limit vertex buffer workarounds to ivb
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:21 +00:00
Dave Airlie
36fd6152f6 crocus/gen8: extending gen7 binding table pointers
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:21 +00:00
Dave Airlie
643475bad3 crocus/gen8: add l3 config support
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:21 +00:00
Dave Airlie
d0a96d6817 crocus/gen8: add sampler / border color support for gen8
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:21 +00:00
Dave Airlie
0cec8eed70 crocus/gen8: extend predicate handling to gen8.
This adds some gen8 specific code to do MI_PREDICATE properly,
otherwise just extends the hsw code

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:20 +00:00
Dave Airlie
aac830ec65 crocus: extend hsw cut index to gen8
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:20 +00:00
Dave Airlie
a422823a61 crocus/gen8: extend image support to gen8
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:20 +00:00
Dave Airlie
60c03d003a crocus/gen8: extend some compute + state functions to gen8
This just extends some hsw functionality to gen8

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:20 +00:00
Dave Airlie
27b86a8b5c crocus/gen8: add push constant support (extend hsw)
This just extends the gen7 checks and adds the gen8 value

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:20 +00:00
Dave Airlie
72e5778579 crocus: extend l3 config setup to gen8
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:20 +00:00
Dave Airlie
7210e98c00 crocus/query: add gen8 support to queries by extending hsw checks
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:20 +00:00
Dave Airlie
6b5b2237a0 crocus/stencil: limit stencil workaround to gen7
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:20 +00:00
Dave Airlie
fa52824f3d crocus: limit texture gather workarounds to gen7/hsw
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:20 +00:00
Dave Airlie
df0e131b43 crocus/gen8: limit some pipe controls to gen7/hsw
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:20 +00:00
Dave Airlie
22ee372eb3 crocus: refactor blend state code.
This just refactors this code before adding gen8 support which
needs more changes in this area.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:20 +00:00
Dave Airlie
a9c1c75e9c crocus: convert a bunch of is_haswell into verx10 checks.
This just make things easier when gen8 support is added

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:20 +00:00
Dave Airlie
ae17ffedb7 crocus: fixup workaround_bo to match 965.
Always add to the batch, and don't set the reloc write flag when
adding to reloc list, as this will confuse the render/compute sync
code and cause over syncing.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:20 +00:00
Dave Airlie
1ced421330 crocus: rename genX proto functions to avoid iris conflicts.
If we start adding gen8, then conflicts occur, but the crocus
ones into their own namespace to avoid this.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507>
2021-06-22 18:56:20 +00:00