Alyssa Rosenzweig
3f786ed10b
pan/bi: Implement csel fusing
...
When generating csel instructions, we can peak to see what condition is
being used. If we're using a "nice" condition, we can fuse it in with
the csel itself, ideally letting the condition itself be DCE'd away.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4276 >
2020-03-22 03:32:35 +00:00
Alyssa Rosenzweig
5a02c871f2
pan/bi: Add soft NIR->BIR condition translation
...
We would like to use this routine opportunistically when fusing
conditions into csels and branches, so let's add a mode where we don't
abort.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4276 >
2020-03-22 03:32:35 +00:00
Alyssa Rosenzweig
cd7fec782e
pan/bi: Remove hacks for 1-bit booleans in IR
...
Now that we lower them away, a bunch of special cases disappear.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4276 >
2020-03-22 03:32:35 +00:00
Alyssa Rosenzweig
12299dead7
pan/bi: Lower bool to ints
...
Currently we lower to int32, but once mediump lands we'll be ready for
that too.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4276 >
2020-03-22 03:32:35 +00:00
Alyssa Rosenzweig
1097c69087
pan/bi: Pack LD_ATTR
...
Also requires the usual R61/62 games.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4276 >
2020-03-22 03:32:35 +00:00
Alyssa Rosenzweig
0be1116b81
pan/bi: Pack st_vary
...
This should let varying writes go through finally.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4276 >
2020-03-22 03:32:35 +00:00
Alyssa Rosenzweig
9213b2520c
pan/bi: Add store_channels property
...
It can't be inferred from the usual writemask since stores don't write
to a register destination.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4276 >
2020-03-22 03:32:35 +00:00
Alyssa Rosenzweig
c57ac9d136
pan/bi: Generalize data register setting
...
So we can use it for stores too.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4276 >
2020-03-22 03:32:35 +00:00
Alyssa Rosenzweig
9458b017a9
pan/bi: Flesh out st_vary IR
...
We need to make the semantics of BI_VECTOR a bit more precise -
vectorize only the first argument, not all of them. This is enough for
current and future users, as far as I know.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4276 >
2020-03-22 03:32:35 +00:00
Alyssa Rosenzweig
409e4f8a49
pan/bi: Pack ld_var_addr
...
Choo choo.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4276 >
2020-03-22 03:32:35 +00:00
Alyssa Rosenzweig
7321a17c6a
pan/bi: Pack ld_ubo ops
...
Routes some infrastructure to do so at least slightly generically but
we'll see.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4276 >
2020-03-22 03:32:35 +00:00
Alyssa Rosenzweig
908341ea3f
pan/bi: Add bi_load32_components helper
...
Pattern seems to crop up a lot.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4276 >
2020-03-22 03:32:35 +00:00
Alyssa Rosenzweig
8bb16138b6
pan/bi: Include UBO index for sysval reads
...
Trivially zero.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4276 >
2020-03-22 03:32:35 +00:00
Alyssa Rosenzweig
fc0b49bb2c
pan/bi: Index out constants in instructions
...
We rewrite BIR_INDEX_CONSTANT (and _ZERO) to preassigned constant ports
when assign uniform_const for the bundle. There are a lot of issues
raised here, unfortunately, and the implementation here is woefully
incomplete with a nasty hack for loads... nevertheless, it's somewhere
to start.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4276 >
2020-03-22 03:32:35 +00:00
Alyssa Rosenzweig
d2d0de962e
pan/bi: Document constant related errata(?)
...
We're not totally sure what's up with this but Connor says if you
violate it Bad Things happen in your shader. I think this might be an
issue affecting early Bifrost (G71, ..?); when we know more we can look
into patching in a fix.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4276 >
2020-03-22 03:32:35 +00:00
Alyssa Rosenzweig
eb590a98d2
pan/bi: Pack a constant quadword
...
The piping isn't there to make use of it yet, but this stubs out
constant support at the clause level.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4276 >
2020-03-22 03:32:35 +00:00
Alyssa Rosenzweig
50d3f4df45
pan/bi: Add move lowering pass
...
We need ALU mostly scalarized, but we get vector moves created from
lower_vec_to_mov so let's scalarize that ourselves rather than bother
NIR.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4276 >
2020-03-22 03:32:35 +00:00
Alyssa Rosenzweig
58a51c49bb
pan/bi: Add bi_emit_before helper
...
For BIR lowering passes.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4276 >
2020-03-22 03:32:34 +00:00
Alyssa Rosenzweig
6b7077efda
pan/bi: Implement FMA/MOV without modifiers
...
We split off MOV from FMOV since the canonical move on Bifrost doesn't
accept modifiers. (We can still do fmov, but with something like add-0.)
This will also make copyprop a little nicer, I think. Anyway, the
non-modifier version we can implement as-is for FMA.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4276 >
2020-03-22 03:32:34 +00:00
Jonathan Marek
f8bbf44ca4
etnaviv: nir: add compile_check_limits
...
To match TGSI compiler behaviour in glmark terrain scene for example.
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4199 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4199 >
2020-03-22 00:29:36 +00:00
Marek Olšák
303842b2db
ac: fix fast division
...
This stopped working with LLVM 11 and might occasionally have been broken
on older LLVM, because the metadata was set on the mul, not on the rcp.
Cc: 19.3 20.0 <mesa-stable@lists.freedesktop.org >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4268 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4268 >
2020-03-21 22:34:17 +00:00
Eduardo Lima Mitev
55b0a676fd
turnip: Instance can be NULL resolving 'GetInstanceProcAddr' entry point
...
Using turnip driver without a vulkan loader is currently broken because
the entry point resolver is expecting a valid instance when resolving
'vkGetInstanceProcAddr' through vk_icdGetInstanceProcAddr().
Reviewed-by: Jonathan Marek <jonathan@marek.ca >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4257 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4257 >
2020-03-21 18:56:07 +01:00
Marek Olšák
5cc3ab0ba0
vbo,gallium: make glBegin/End buffer size configurable by drivers
...
The default is 512 KB, but radeonsi wants 4 MB.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4154 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4154 >
2020-03-21 03:39:51 +00:00
Marek Olšák
11d3aa5e7b
glthread: remove the marshal_fail XML attribute
...
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4124 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4124 >
2020-03-20 23:01:13 -04:00
Marek Olšák
c02a1347e5
glthread: ignore vertex arrays with user pointers if they're disabled
...
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4124 >
2020-03-20 23:01:13 -04:00
Marek Olšák
0b1dd18591
glthread: track which vertex array attribs are enabled
...
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4124 >
2020-03-20 23:01:13 -04:00
Marek Olšák
c571dda1e0
glthread: rename non_vbo helper functions
...
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4124 >
2020-03-20 23:01:13 -04:00
Marek Olšák
bde4505f61
glthread: handle buffer unbinding via glDeleteBuffers
...
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4124 >
2020-03-20 23:01:13 -04:00
Marek Olšák
15b0719ae2
mesa: put gl_thread_state inside gl_context to remove pointer indirection
...
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4124 >
2020-03-20 23:01:13 -04:00
Marek Olšák
8a4114b929
glthread: rename marshal.h/c to glthread_marshal.h and glthread_shaderobj.c
...
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4124 >
2020-03-20 23:01:13 -04:00
Marek Olšák
df74163995
glthread: move buffer functions into glthread_bufferobj.c
...
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4124 >
2020-03-20 23:01:13 -04:00
Marek Olšák
37725e6c38
glthread: autogenerate prototypes for custom-marshalled functions
...
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4124 >
2020-03-20 23:01:13 -04:00
Marek Olšák
4ded23a4ad
glthread: simplify printing safe_mul in gl_marshal.py
...
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4124 >
2020-03-20 23:01:13 -04:00
Marek Olšák
01a50e2493
glthread: remove _mesa_post_marshal_hook, because it's not very useful
...
and also remove the useless forward declaration of enum marshal_dispatch_cmd_id.
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4124 >
2020-03-20 23:01:13 -04:00
Jason Ekstrand
aee004a7c8
util/sparse_array: Stash the node level in the node pointer
...
This reworks the data structure a bit and, in my view, simplifies it.
Instead of each node having a header which has the node level in it, we
use the bottom 6 bits of the pointer for that. This requires us to
allocate with the os_malloc/free_aligned helpers (which call into
posix_memalign on Linux) but cache-line aligning our allocations is
actually probably a good thing given that we're doing atomics on them.
The primary advantages to doing this is that it changes the number of
memory accesses per tree level from 2 to 1 when walking the tree because
we no longer have to look at node->level.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4228 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4228 >
2020-03-20 15:31:10 -05:00
Jason Ekstrand
6be65b0777
meson,ci: Disable sparse_array tests on windows
...
As soon as I switch to using the allocation helpers in os_memory.h,
these tests start blowing up on the Windows build in GitLab CI. As far
as I can tell, the issue is something with the combination of the debug
allocator in u_debug_memory.c and the mutex implementation in the
version of Wine running in CI. The tests don't fail on real windows nor
do they fail with newer versions of Wine.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4228 >
2020-03-20 15:26:07 -05:00
Jason Ekstrand
9fcd8bdbfc
util/sparse_array: Add a node_size_log2 temporary
...
We use this value several times. It's probably best to encourage the
compiler to only read it once. I have no proof that this actually makes
any performance improvement whatsoever.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4228 >
2020-03-20 15:26:07 -05:00
Jason Ekstrand
7893872a6c
util/sparse_array: Finish the sparse_array in the tests
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4228 >
2020-03-20 15:26:07 -05:00
Eric Anholt
8edaa843ab
ci: Move db820c and db410c's gles3 tests to manual, like radv did.
...
This should make these tests available for clicking on the web ui in
personal branches, while hiding them from marge and the post-merge CI
pipelines. We had already disabled db410c's gles3, but it wasn't
available in the ui and you had to hack .gitalb-ci.yml. db820c is now
being disabled by default, due to instaboots mentioned in
https://gitlab.freedesktop.org/mesa/mesa/issues/2649
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4247 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4247 >
2020-03-20 18:27:37 +00:00
Mark Menzynski
866a8da2a4
tgsi/util: Change boolean for bool
...
I was getting errors with "boolean" when compiling. This patch changes
boolean to bool from <stdbool.h>.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Signed-off-by: Mark Menzynski <mmenzyns@redhat.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3903 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3903 >
2020-03-20 17:25:25 +00:00
Mark Menzynski
24e82e4533
util/blob: Add overwrite function for uint8
...
Overwrite function for this type was missing and I needed it for my project.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Signed-off-by: Mark Menzynski <mmenzyns@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3903 >
2020-03-20 17:25:25 +00:00
Vasily Khoruzhick
1b49534df2
lima: add support for R and RG formats
...
Unfortunately these are not supported natively for sampling
so we have to lower them.
Reviewed-by: Erico Nunes <nunes.erico@gmail.com >
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4241 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4241 >
2020-03-20 17:00:10 +00:00
Vasily Khoruzhick
e763c6778c
lima: split pixel and texel format tables
...
This is preparation for the next commit where we may need different
swap_r_b flags for pixel and texel formats.
Reviewed-by: Erico Nunes <nunes.erico@gmail.com >
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4241 >
2020-03-20 17:00:10 +00:00
Erik Faye-Lund
d4b0e28f62
zink/spirv: do not use bitwise operations on booleans
...
According to the SPIR-V specification, these operations require
integer-types. When bit_size is 1, we use booleans, which makes us emit
illegal code.
So let's fix the emitting to check if the first source is one bit wide.
For inot we can take a short-cut, and check the destination instead.
This doesn't work for ieq and ine, so let's not bother to do this
BINOP_LOG.
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4036 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4036 >
2020-03-20 16:37:30 +00:00
Michel Dänzer
130c0ba1cc
gitlab-ci: Restrict s390x/ppc64el jobs to packet runners
...
They are hitting timeouts on the gstreamer runners now... *sigh*
Reviewed-by: Adam Jackson <ajax@redhat.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4233 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4233 >
2020-03-20 16:39:17 +01:00
Rhys Perry
500842399a
radv/winsys: set has_syncobj_wait_for_submit in the null winsys
...
Needed for Vulkan 1.1+
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4249 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4249 >
2020-03-20 09:51:06 +00:00
Lionel Landwerlin
58deebe547
intel: add new TGL pci ids
...
Update following kernel : https://patchwork.freedesktop.org/patch/357921/
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Bspec: 44455
Acked-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Scott D Phillips <scott.d.phillips@intel.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4248 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4248 >
2020-03-20 10:55:57 +02:00
Samuel Pitoiset
2d3223ca90
radv: fix optional pSizes parameter when binding streamout buffers
...
The Vulkan spec 1.2.135 says:
"pSizes is an optional array of buffer sizes, specifying the maximum
number of bytes to capture to the corresponding transform feedback
buffer. If pSizes is NULL, or the value of the pSizes array element
is VK_WHOLE_SIZE, then the maximum bytes captured will be the size
of the corresponding buffer minus the buffer offset."
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2650
Fixes: b4eb029062 ("radv: implement VK_EXT_transform_feedback")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4232 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4232 >
2020-03-20 09:25:14 +01:00
Caio Marcelo de Oliveira Filho
fdc6032928
mesa/main: Fix overflow in validation of DispatchComputeGroupSizeARB
...
An uint64_t can store the result of multiplying two GLuint (uint32_t),
so use that property to check for overflow when calculating the total.
Change the error message so we don't need to care about the actual
total -- which means we don't need a larger than 64-bit value to hold
it.
Fixes: 45ab63c0cb ("mesa/main: add support for ARB_compute_variable_groups_size")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4240 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4240 >
2020-03-20 03:07:45 +00:00
Marek Olšák
4ac1d3cc45
driconf: enable glthread for "From The Depths"
...
25% perf improvement
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4254 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4254 >
2020-03-19 21:27:01 -04:00