Matt Turner
edae75037f
intel/compiler: Mark visitor parameters to scheduler const
...
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4093 >
2020-03-09 04:44:12 +00:00
Matt Turner
75a33e268e
intel/compiler: Mark some methods and parameters const
...
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4093 >
2020-03-09 04:44:11 +00:00
Matt Turner
03ac90aae5
intel/compiler: Make instructions_to_schedule a local variable
...
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4093 >
2020-03-09 04:44:11 +00:00
Matt Turner
43019c6f2c
intel/compiler: Remove unnecessary local variables
...
These are already provided in the fs_reg_alloc class.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4093 >
2020-03-09 04:44:11 +00:00
Matt Turner
3d0821a216
intel/vec4: Make implied_mrf_writes() a vec4_instruction method
...
Same as commit c20dc9b836
(intel/fs: Make implied_mrf_writes() an
fs_inst method.)
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4093 >
2020-03-09 04:44:11 +00:00
Christian Gmeiner
d8f3d0a3a8
etnaviv: implement emit_string_marker
...
Writes string to cmdstream in payload of a nop command.
Could be useful for internal driver debugging too.
Here is how it looks decoded:
0x18000000, /* NOP (3) OP=NOP */
0x65736572, /* rese */
0x18000000, /* NOP (3) OP=NOP */
0x00000074, /* t */
0x00000000, /* GL.API_MODE := OPENGL */
or
0x00000705, /* GL.STALL_TOKEN := FROM=RA,TO=PE,FLIP0=0,FLIP1=0 */
0x00000001, /* TS.FLUSH_CACHE := FLUSH=1 */
0x18000000, /* NOP (3) OP=NOP */
0x616e7465, /* etna */
0x18000000, /* NOP (3) OP=NOP */
0x6275735f, /* _sub */
0x18000000, /* NOP (3) OP=NOP */
0x5f74696d, /* mit_ */
0x18000000, /* NOP (3) OP=NOP */
0x735f7372, /* rs_s */
0x18000000, /* NOP (3) OP=NOP */
0x65746174, /* tate */
0x00004606, /* RS.CONFIG := SOURCE_FORMAT=A8R8G8B8
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3744 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3744 >
2020-03-08 13:29:56 +00:00
Christian Gmeiner
4460628330
etnaviv: increase number of supported varyings to 16
...
No deqp regressions.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Reviewed-by: Jonathan Marek <jonathan@marek.ca >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3827 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3827 >
2020-03-08 11:08:59 +00:00
Christian Gmeiner
53c6cb1bad
etnaviv: update headers from rnndb
...
Update to etna_viv commit fd2e2cfd.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Reviewed-by: Jonathan Marek <jonathan@marek.ca >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3827 >
2020-03-08 11:08:59 +00:00
Christian Gmeiner
84816c22e4
etnaviv: ask kernel for max number of supported varyings
...
The inital etnaviv kernel driver in 4.5 has support for this param.
See kernel commit 602eb48966d7b7f7e64dca8d9ea2842d83bfae73
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Reviewed-by: Jonathan Marek <jonathan@marek.ca >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3827 >
2020-03-08 11:08:59 +00:00
Michel Dänzer
0103f02acb
gitlab-ci: Always name artifacts archive after the job producing it
...
This will help determine which artifacts generate how much traffic.
v2:
* Add "mesa_" prefix to make it obvious which project the artifacts are
from.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4085 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4085 >
2020-03-07 11:09:50 +01:00
Lionel Landwerlin
20c09c9c06
anv: stop storing prog param data into shader blobs
...
We have no use for this data in Anv.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jason EKstrand <jason@jlekstrand.net >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3517 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3517 >
2020-03-07 05:51:45 +00:00
Jason Ekstrand
e03f965280
anv: Bounds-check pushed UBOs when robustBufferAccess = true
...
We also have to add nir_intrinsic_load_push_constant to the list of
intrinsics which use push constants in brw_nir_analyze_ubo_ranges
because we're moving the loop where we rewrite the intrinsics to after
we've analyzed UBO loads.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3777 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3777 >
2020-03-07 04:51:29 +00:00
Jason Ekstrand
faea84e254
anv: Add an align_down_u32 helper
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3777 >
2020-03-07 04:51:29 +00:00
Jason Ekstrand
61ac8cf083
anv: Align UBO sizes to 32B
...
This makes all of our bounds checking consistent with the block loads we
do for constant offset UBO accesses.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3777 >
2020-03-07 04:51:28 +00:00
Jason Ekstrand
4610d69e37
anv: Delete some pointless break statements
...
They immediately follow returns.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3777 >
2020-03-07 04:51:28 +00:00
Jason Ekstrand
28c243e9ec
anv: Pass buffer addresses into emit_push_constant*
...
While we're here, we add an assert that bind_map::push_ranges is tightly
packed. If it isn't, it breaks assumptions in the emit_push_constant*
functions.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3777 >
2020-03-07 04:51:28 +00:00
Jason Ekstrand
ff5de35127
anv: Mark max_push_range UNUSED and simplify the code
...
The compiler should be smart enough to figure out that it's unused on
Gen11 and earlier and delete the code which calculates. Us adding an
`if (GEN_GEN >= 12)` check is unnecessary and just dirties the code.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3777 >
2020-03-07 04:51:28 +00:00
Jason Ekstrand
35ca2ad22e
anv: Parse VkPhysicalDeviceFeatures2 in CreateDevice
...
The client may enable robustBufferAccess2 via either
pCreateInfo->pEnabledFeatures or via a chained-in
VkPhysicalDeviceFeatures2 struct. We need to parse both.
Fixes: 022e5c7e5a
"anv: Implement VK_KHR_get_physical_device_properties2"
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3777 >
2020-03-07 04:51:28 +00:00
Eric Engestrom
0e4c001951
docs/relnotes/20.0: fix vulkan version reported
...
Signed-off-by: Eric Engestrom <eric@engestrom.ch >
Reviewed-by: Dylan Baker <dylan@pnwbakers.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4092 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4092 >
2020-03-07 00:57:15 +00:00
Eric Engestrom
5ff443b8aa
docs/relnotes/19.3: fix vulkan version reported
...
Signed-off-by: Eric Engestrom <eric@engestrom.ch >
Reviewed-by: Dylan Baker <dylan@pnwbakers.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4092 >
2020-03-07 00:57:15 +00:00
Eric Engestrom
2557d614d3
gen_release_notes: fix vulkan version reported
...
Fixes: 4ef3f7e3d3
("anv: Enable Vulkan 1.2 support")
Fixes: 7f5462e349
("radv: enable Vulkan 1.2")
Fixes: 75755e0eba
("turnip: Pretend to support Vulkan 1.2")
Signed-off-by: Eric Engestrom <eric@engestrom.ch >
Reviewed-by: Dylan Baker <dylan@pnwbakers.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4092 >
2020-03-07 00:57:15 +00:00
Alyssa Rosenzweig
de30a7ae6e
pan/bi: Fix Android.mk
...
Files listed in Makefile.sources did not exist, this affects the android
build for other drivers as well.
[Patch by Tapani manually cherrypicked into this branch]
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097 >
2020-03-07 00:37:39 +00:00
Alyssa Rosenzweig
0b0be49005
pan/bi: Rename next-wait to simply 'wait'
...
next-wait is from a quirk of packing that the dependency indices are
"off by one"; we don't emulate this quirk in the IR since it's easy
enough to patch over in the disassembler. Let's not confuse anybody with
it.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097 >
2020-03-07 00:37:39 +00:00
Alyssa Rosenzweig
b329f8c750
pan/bi: Add dummy scheduler
...
Do the absolute simplest possible thing -- create a clause for every
instruction, and just pick whichever slot we can, nopping the other,
copying whatever constant we have whether it's used or not.
To be clear - this is not to be used in a production compiler. But this
lets actual bundles and clauses show up in the BIR, which unblocks work
on final code generation and packing (which can happen more or less in
parallel to NIR->BIR, optimization, register allocation, and writing an
actual scheduling).
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097 >
2020-03-07 00:37:39 +00:00
Alyssa Rosenzweig
51e537c9fa
pan/bi: Implement load_const
...
In the laziest possible way... We can just emit worst case moves which
DCE will eat for breakfast anyway, and inline constants on instructions
where that is supported directly. This approach eliminates a lot of
nasty corner cases that Midgard's crazy cache scheme has hit, at the
expense of slightly more work for DCE (but it's only a single iteration
of an O(N) pass that has to run anyway..)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097 >
2020-03-07 00:37:39 +00:00
Alyssa Rosenzweig
1ead0d3488
pan/bi: Add preliminary LOAD_UNIFORM implementation
...
Lots of things are missing (indirect access, UBOs) but we have this
stubbed out for now.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097 >
2020-03-07 00:37:39 +00:00
Alyssa Rosenzweig
48910e8388
pan/bi: Implement store_vary for vertex shaders
...
As far as I/O goes, these four should hold us over for a while.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097 >
2020-03-07 00:37:39 +00:00
Alyssa Rosenzweig
d86659ca57
pan/bi: Add helpers for creating temporaries
...
Also from Midgard, adapted to our addressing scheme.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097 >
2020-03-07 00:37:39 +00:00
Alyssa Rosenzweig
59b476e11a
pan/bi: Implement load_input for vertex shaders
...
Corresponds to a single LD_ATTR instruction, easy enough.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097 >
2020-03-07 00:37:39 +00:00
Alyssa Rosenzweig
dabb6c6b9f
pan/bi: Implement store_output for fragment shaders
...
Corresponds to a BLEND instruction, possibly preceded by an ATEST
instruction.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097 >
2020-03-07 00:37:39 +00:00
Alyssa Rosenzweig
79c1af0623
pan/bi: Add bi_schedule_barrier helper
...
Copypaste from Midgard.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097 >
2020-03-07 00:37:39 +00:00
Alyssa Rosenzweig
92a4f26e7f
pan/bi: Add blend_location to IR for BI_BLEND
...
To specify which render target is being written.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097 >
2020-03-07 00:37:39 +00:00
Alyssa Rosenzweig
0767182665
pan/bi: Implement nir_intrsinic_load_interpolated_input
...
Enough for basic varying reads.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097 >
2020-03-07 00:37:39 +00:00
Alyssa Rosenzweig
806533ba7f
pan/bi: Fix destination printing
...
It should get the same treatment as sources to handle SSA/reg/etc.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097 >
2020-03-07 00:37:39 +00:00
Alyssa Rosenzweig
65c8dcca3b
pan/bi: Handle jumps (breaks, continues)
...
Loops should behave reasonably now.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097 >
2020-03-07 00:37:39 +00:00
Alyssa Rosenzweig
987aea1400
pan/bi: Handle loops when ingesting CFG
...
Not very useful without also handling breaks and continues, of course.
We use the strategy from v3d (vir_to_nir) instead of Midgard's, since
the latter is mildly insane. I mean, it passes deqp but...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097 >
2020-03-07 00:37:39 +00:00
Alyssa Rosenzweig
9a00cf3d1e
pan/bi: Add support for if-else blocks
...
Branch lowering code lifted from Midgard as usual.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097 >
2020-03-07 00:37:39 +00:00
Alyssa Rosenzweig
977a38c87f
pan/bi: Call nir_lower_io_to_temporaries in cmdline
...
Normally mesa/st would do this for us, but we're using the standalone
compiler (in advance of having the hardware) and need this pass
particularly for fragment writeout.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097 >
2020-03-07 00:37:39 +00:00
Alyssa Rosenzweig
55dab92073
pan/bi: Add instruction emit/remove helpers
...
As we start descending into code generation these will be of interest.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097 >
2020-03-07 00:37:39 +00:00
Alyssa Rosenzweig
7fd22c3bbd
pan/bi: Print branch target
...
...if it's present, anyway.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097 >
2020-03-07 00:37:39 +00:00
Alyssa Rosenzweig
2e9b5f8ef4
pan/bi: Don't print types for unconditional branches
...
There's nothing to type!
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097 >
2020-03-07 00:37:39 +00:00
Alyssa Rosenzweig
5c7ee8a974
pan/bi: Improve block printing
...
Skip predecessor printing if there are none and match a missing brace,
also fixup the spacing.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097 >
2020-03-07 00:37:39 +00:00
Alyssa Rosenzweig
83c4562503
pan/bi: Walk through the NIR control flow graph
...
Copypaste from Midgard with some cleanups. That seems to be a trend
these days. Hopefully boilerplate will come to a close soon.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097 >
2020-03-07 00:37:39 +00:00
Alyssa Rosenzweig
0d29184f69
pan/bi: Lower and optimize NIR
...
Pretty much a copypaste from Midgard except where architectural
decisions diverge around vectorization. On that note, we will need our
own ALU scalarization pass at some point (or rather we'll need to extend
nir_lower_alu_scalar) to allow partial lowering for 8/16-bit ops. I.e.
we'll approximately need to lower
vec4 16 ssa_2 = fadd ssa_0, ssa_1
to
vec2 16 ssa_2 = fadd ssa_0.xy, ssa_1.xy
vec2 16 ssa_3 = fadd ssa_0.zw, ssa_1.zw
vec4 16 ssa_4 = vec4 ssa_2.x, ssa_2.y, ssa_3.x, ssa_4
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097 >
2020-03-07 00:37:39 +00:00
Chad Versace
c652ff8caa
anv: Flatten the logic add_aux_surface_if_supported (v3)
...
Reduces the function's max indentation level from 5 to 3 inside the big
'if' tree. And enables more comments to be attached to the condition
they describe.
v2:
- Add missing DEBUG_NO_RBC check.
v3:
- Return early on DISABLE_AUX_BIT.
- Restore original order of gen7 hiz check.
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4096 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4096 >
2020-03-06 23:40:41 +00:00
Chad Versace
615c65ba1b
anv: Refactor creation of aux surfaces (v2)
...
make_surface() contained a giant if-tree for creation of aux surfaces.
Move the if-tree into its own function, add_aux_surface_if_supported().
This will simplify future changes for VK_EXT_image_drm_format_modifier.
This patch merely moves the code verbatim, then extracts duplicate
assertions to the top.
v2: Rename func to add_aux_surface_if_supported [for jekstrand].
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4096 >
2020-03-06 23:40:41 +00:00
Chad Versace
d1b7d80bc3
anv: Add anv_image_plane_needs_shadow_surface() (v2)
...
The function returns true if hardware limitations require the image
plane to use a shadow surface. It replaces equivalent code in
make_surface().
Refactor only. No intended change in behavior.
Why extract this code out of vkCreateImage? If an image requires
a shadow surface, then that may impact its support for DRM format
modifiers, which must be evaluated during
vkGetPhysicalDeviceImageFormatProperties2.
v2:
- Use early return. [for jekstrand]
- Unexport function.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4096 >
2020-03-06 23:40:41 +00:00
Timothy Arceri
1da6b7f8a3
glsl: add subroutine support to nir linker
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4050 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4050 >
2020-03-06 23:22:14 +00:00
Timothy Arceri
b1bc24f826
glsl: dont try to assign uniform storage for uniform blocks
...
Fixes a crash in some shaders.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4050 >
2020-03-06 23:22:14 +00:00
Timothy Arceri
576b5ace9e
glsl: add support for builtins to the nir uniform linker
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4050 >
2020-03-06 23:22:14 +00:00