Ian Romanick
4fcddb55f2
spirv: Add support for IntegerFunctions2INTEL capability
...
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/767 >
2020-01-23 00:18:57 +00:00
Ian Romanick
aa56934e2a
spirv: Silence a bunch of unused parameter warnings
...
The change to get_uniform_nir_atomic_op make it look like the other
get_*_nir_atomic_op functions. The rest just add UNUSED or ASSERTED
to parameters required for some of the interfaces.
src/compiler/spirv/spirv_to_nir.c: In function ‘struct_member_decoration_cb’:
src/compiler/spirv/spirv_to_nir.c:673:47: warning: unused parameter ‘val’ [-Wunused-parameter]
struct vtn_value *val, int member,
^~~
src/compiler/spirv/spirv_to_nir.c: In function ‘struct_member_matrix_stride_cb’:
src/compiler/spirv/spirv_to_nir.c:778:50: warning: unused parameter ‘val’ [-Wunused-parameter]
struct vtn_value *val, int member,
^~~
src/compiler/spirv/spirv_to_nir.c: In function ‘type_decoration_cb’:
src/compiler/spirv/spirv_to_nir.c:805:61: warning: unused parameter ‘ctx’ [-Wunused-parameter]
const struct vtn_decoration *dec, void *ctx)
^~~
src/compiler/spirv/spirv_to_nir.c: In function ‘spec_constant_decoration_cb’:
src/compiler/spirv/spirv_to_nir.c:1359:70: warning: unused parameter ‘v’ [-Wunused-parameter]
spec_constant_decoration_cb(struct vtn_builder *b, struct vtn_value *v,
^
src/compiler/spirv/spirv_to_nir.c: In function ‘handle_workgroup_size_decoration_cb’:
src/compiler/spirv/spirv_to_nir.c:1407:43: warning: unused parameter ‘data’ [-Wunused-parameter]
void *data)
^~~~
src/compiler/spirv/spirv_to_nir.c: In function ‘vtn_handle_function_call’:
src/compiler/spirv/spirv_to_nir.c:1806:55: warning: unused parameter ‘opcode’ [-Wunused-parameter]
vtn_handle_function_call(struct vtn_builder *b, SpvOp opcode,
^~~~~~
src/compiler/spirv/spirv_to_nir.c:1807:54: warning: unused parameter ‘count’ [-Wunused-parameter]
const uint32_t *w, unsigned count)
^~~~~
src/compiler/spirv/spirv_to_nir.c: In function ‘get_uniform_nir_atomic_op’:
src/compiler/spirv/spirv_to_nir.c:2548:47: warning: unused parameter ‘b’ [-Wunused-parameter]
get_uniform_nir_atomic_op(struct vtn_builder *b, SpvOp opcode)
^
src/compiler/spirv/spirv_to_nir.c: In function ‘vtn_handle_atomics’:
src/compiler/spirv/spirv_to_nir.c:2633:48: warning: unused parameter ‘count’ [-Wunused-parameter]
const uint32_t *w, unsigned count)
^~~~~
src/compiler/spirv/spirv_to_nir.c: In function ‘vtn_handle_barrier’:
src/compiler/spirv/spirv_to_nir.c:3197:48: warning: unused parameter ‘count’ [-Wunused-parameter]
const uint32_t *w, unsigned count)
^~~~~
src/compiler/spirv/spirv_to_nir.c: In function ‘vtn_handle_execution_mode’:
src/compiler/spirv/spirv_to_nir.c:3618:68: warning: unused parameter ‘data’ [-Wunused-parameter]
const struct vtn_decoration *mode, void *data)
^~~~
Acked-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/767 >
2020-01-23 00:18:57 +00:00
Ian Romanick
44471a76e9
nir/spirv: Translate SPIR-V to NIR for new INTEL_shader_integer_functions2 opcodes
...
v2: Rebase on 272e927d0e
("nir/spirv: initial handling of OpenCL.std
extension opcodes")
v3: Add missing SpvOpUCountTrailingZerosINTEL case to switch in
vtn_handle_body_instruction. Remove stray semicolon in
vtn_nir_alu_op_for_spirv_opcode. Use umin instead of umax for
SpvOpUCountTrailingZerosINTEL "lowering" in vtn_handle_alu.
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/767 >
2020-01-23 00:18:57 +00:00
Ian Romanick
de6c0f8487
intel/fs: Implement support for NIR opcodes for INTEL_shader_integer_functions2
...
v2: Remove smashing type to D for nir_op_irhadd. Caio noticed it was
odd, and removing it fixes an assertion failure in the crucible
func.shader.averageRounded.int64_t test (because the source should be
W).
v3: Emit BRW_OPCODE_MUL directly for nir_op_umul_32x16 and
nir_op_imul_32x16. Suggested by Curro.
v4: Smash types of MUL instruction generated for nir_op_umul_32x16 and
nir_op_imul_32x16. With this change, I get the same assembly now as I
did with v2.
v5: Remove support for pre-Gen7. The integer multiply path was
incorrect, and, since the extension isn't enabled pre-Gen7, there's no
way to test it.
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/767 >
2020-01-23 00:18:57 +00:00
Ian Romanick
58907568ec
intel/fs: Add SHADER_OPCODE_[IU]SUB_SAT pseudo-ops
...
v2: Add a big comment explaining the [IU]SUB_SAT lowering. Suggested by
Caio.
v3: Use get_fpu_lowered_simd_width in get_lowered_simd_width. Suggested
by Ken on IRC.
v4: Fix a typo in a comment. Noticed by Caio.
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/767 >
2020-01-23 00:18:57 +00:00
Ian Romanick
74cd0964d6
intel/fs: Don't lower integer multiplies that don't need lowering
...
v2: Move the check to fs_visitor::lower_integer_multiplication.
Previously the cases where lowering was skipped, the original
instruction was removed by fs_visitor::lower_integer_multiplication.
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/767 >
2020-01-23 00:18:57 +00:00
Ian Romanick
db649fd582
compiler: Translate GLSL IR to NIR for new INTEL_shader_integer_functions2 expressions
...
v2: Rebase on 272e927d0e
("nir/spirv: initial handling of OpenCL.std
extension opcodes")
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/767 >
2020-01-23 00:18:57 +00:00
Ian Romanick
d3d970166c
nir/algebraic: Add lowering for 64-bit iadd_sat and isub_sat
...
v2: Rearranged and expand the comment about the optimizations applied to
the lowering. Suggested by Caio.
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/767 >
2020-01-23 00:18:57 +00:00
Ian Romanick
dcadbd2dd2
nir/algebraic: Add lowering for 64-bit uadd_sat
...
Fixes piglit fs-addsaturate-uint64 and vs-addsaturate-uint64 on Ice
Lake.
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/767 >
2020-01-23 00:18:57 +00:00
Ian Romanick
1bdfc6d7cb
nir/algebraic: Add lowering for 64-bit usub_sat
...
v2: Rebase on 272e927d0e
("nir/spirv: initial handling of OpenCL.std
extension opcodes")
v3: Add a new lower_usub_sat64 flag that only applies to the 64-bit
version of the nir_op_usub_sat instruction.
v4: Also enable the lowering when nir_lower_iadd64 is set.
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com > [v3]
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/767 >
2020-01-23 00:18:57 +00:00
Ian Romanick
a483771045
nir/algebraic: Add lowering for 64-bit hadd and rhadd
...
v2: Rebase on 272e927d0e
("nir/spirv: initial handling of OpenCL.std
extension opcodes")
v3: Add a new lower_hadd64 flag that only applies to the 64-bit versions
of the instructions.
v4: Also enable the lowering when nir_lower_iadd64 is set.
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com > [v3]
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/767 >
2020-01-23 00:18:57 +00:00
Ian Romanick
ea435560ee
nir/algebraic: Add lowering for uabs_usub and uabs_isub
...
v2: Remove some rebase failures noticed by Caio.
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/767 >
2020-01-23 00:18:57 +00:00
Ian Romanick
21f0d020fe
nir: Add new instructions for INTEL_shader_integer_functions2
...
uctz isn't added because it will implemented in the GLSL path and the
SPIR-V path using other pre-existing instructions.
v2: Avoid signed integer overflow for uabs_isub(0, INT_MIN). Noticed by
Caio.
v3: Alternate fix for signed integer overflow for abs_sub(0, INT_MIN).
I tried the previous methon in a small test program with -ftrapv, and it
failed.
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com > [v1]
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/767 >
2020-01-23 00:18:57 +00:00
Ian Romanick
cb518df775
glsl: Add built-in functions for INTEL_shader_integer_functions2
...
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/767 >
2020-01-23 00:18:57 +00:00
Ian Romanick
5eda9f5832
glsl_types: Add function to get an unsigned base type from a signed type
...
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/767 >
2020-01-23 00:18:57 +00:00
Ian Romanick
1d165b0548
glsl: Add new expressions for INTEL_shader_integer_functions2
...
v2: Re-write iadd64_saturate and isub64_saturate to avoid undefined
overflow behavior. Also fix copy-and-paste bug in isub64_saturate.
Suggested by Caio.
v3: Avoid signed integer overflow for abs_sub(0, INT_MIN). Noticed by
Caio.
v4: Alternate fix for signed integer overflow for abs_sub(0, INT_MIN).
I tried the previous methon in a small test program with -ftrapv, and it
failed.
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/767 >
2020-01-23 00:18:57 +00:00
Ian Romanick
20d34c4ebf
mesa: Extension boilerplate for INTEL_shader_integer_functions2
...
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/767 >
2020-01-23 00:18:57 +00:00
Matt Turner
88a0523bd2
intel/compiler: Move Gen4/5 rounding to visitor
...
Gen4/5's rounding instructions operate differently than later Gens'.
They all return the floor of the input and the "Round-increment"
conditional modifier answers whether the result should be incremented by
1.0 to get the appropriate result for the operation (and thus its
behavior is determined by the round opcode; e.g., RNDZ vs RNDE).
Since this requires a second instruciton (a predicated ADD) that
consumes the result of the round instruction, the round instruction
cannot write its result directly to the (write-only) message registers.
By emitting the ADD in the generator, the backend thinks it's safe to
store the round's result directly to the message register file.
To avoid this, we move the emission of the ADD instruction to the NIR
translator so that the backend has the information it needs.
I suspect this also fixes code generated for RNDZ.SAT but since
Gen4/5 don't support GLSL 1.30 which adds the trunc() function, I
couldn't write a piglit test to confirm. My thinking is that if x=-0.5:
sat(trunc(-0.5)) = 0.0
But on Gen4/5 where sat(trunc(x)) is implemented as
rndz.r.f0 result, x // result = floor(x)
// set f0 if increment needed
(+f0) add result, result, 1.0 // fixup so result = trunc(x)
then putting saturate on both instructions will give the wrong result.
floor(-0.5) = -1.0
sat(floor(-0.5)) = 0.0
// +1 increment would be needed since floor(-0.5) != trunc(-0.5)
sat(sat(floor(-0.5)) + 1.0) = 1.0
Fixes: 6f394343b1
("nir/algebraic: i2f(f2i()) -> trunc()")
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2355
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3459 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3459 >
2020-01-22 23:47:02 +00:00
Samuel Thibault
2fd85105c6
meson: Do not require libdrm for DRI2 on hurd
...
Cc: 19.3 <mesa-stable@lists.freedesktop.org >
Reviewed-by: Dylan Baker <dylan@pnwbakers.com >
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3231 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3231 >
2020-01-22 23:15:05 +00:00
Samuel Thibault
4f52425159
util: Do not fail to build on unknown pthread_setname_np
...
This is only used for debugging, so better making porting on various systems
less hard.
Reviewed-by: Matt Turner <mattst88@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3229 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3229 >
2020-01-22 22:39:57 +00:00
Samuel Thibault
e45dc93136
loader: #define PATH_MAX when undefined (eg. Hurd)
...
Reviewed-by: Matt Turner <mattst88@gmail.com >
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3228 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3228 >
2020-01-22 22:10:29 +00:00
Eric Engestrom
d60b8fd3cb
util/atomic: fix return type of p_atomic_add_return() fallback
...
Fixes: 385d13f26d
("util/atomic: Add a _return variant of p_atomic_add")
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3012 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3012 >
2020-01-22 21:42:52 +00:00
James Xiong
ac0219cc5b
gallium: dmabuf support for yuv formats that are not natively supported
...
V2 (Kenneth Graunke):
added a helper function to check if every format is supported
Signed-off-by: James Xiong <james.xiong@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2846 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2846 >
2020-01-22 21:18:49 +00:00
Emmanuel Gil Peyrot
5f78524d9b
intel/compiler: Return early if read() failed
...
This was the only warning I could see while compiling Iris.
Reviewed-by: Matt Turner <mattst88@gmail.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2821 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2821 >
2020-01-22 20:52:47 +00:00
Alan Coopersmith
8490b7d917
intel/perf: adapt to platforms like Solaris without d_type in struct dirent
...
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com >
[Eric: factor out the is_dir_or_link() check and fix a bug in v1]
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com >
v3: include directory path when lstat'ing files
v4: fix inverted check in enumerate_sysfs_metrics()
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2258 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2258 >
2020-01-22 20:23:51 +00:00
Eric Engestrom
8f140422ed
llvmpipe: drop LLVM < 3.4 support
...
We don't support < 3.9 anymore, so this code is dead.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2760 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2760 >
2020-01-22 11:21:13 -08:00
Eric Engestrom
7d7d1da1ac
egl: drop confusing mincore() error message
...
A user came to me asking how to fix this error, but it's entirely
expected that `get_wl_surface_proxy()` on recent enough wayland
compositors will always print it.
Let's just remove the message altogether, it is basically never useful.
Reviewed-by: Matt Turner <mattst88@gmail.com >
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3219 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3219 >
2020-01-22 17:55:26 +00:00
Rhys Perry
15a1cc00d3
aco: fix off-by-one error when initializing sgpr_live_in
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2394
Fixes: 93c8ebfa78
('aco: Initial commit of independent AMD compiler')
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3511 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3511 >
2020-01-22 17:23:30 +00:00
Samuel Pitoiset
bd51538d28
radv: fix double free corruption in radv_alloc_memory()
...
If the driver fails to allocate memory for some reasons, it shouldn't
free the 'mem' object twice.
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2302
Fixes: 825ddfee59
("radv: Handle device memory alloc failure with normal free.")
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/3508 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3508 >
2020-01-22 17:01:16 +00:00
Michel Dänzer
5a6a88f58c
gitlab-ci: Use single if for manual job rules entry
...
I thought multiple ifs would all need to match, but looks like only the
last one (or either one?) does.
This should prevent a manual pipeline from getting created after merging
changes which can't affect the pipeline.
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3474 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3474 >
2020-01-22 16:42:11 +00:00
Michel Dänzer
2dd0cc60f1
gitlab-ci: Set GIT_STRATEGY to none for the dummy job
...
It doesn't need anything from the Git repository.
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3474 >
2020-01-22 16:42:11 +00:00
X512
eb40c0adfc
util/u_thread: Fix build under Haiku
2020-01-22 16:21:54 +00:00
Alexander von Gluck IV
49d2a066c2
haiku/hgl: Fix build via header reordering
2020-01-22 16:21:54 +00:00
Rhys Perry
3f96a1ed86
aco: fix operand kill flags when a temporary is used more than once
...
Helps create v_mac_f32 from v_mad_f32(b, a, b)
Totals from affected shaders:
SGPRS: 35824 -> 35824 (0.00 %)
VGPRS: 33460 -> 33456 (-0.01 %)
Spilled SGPRs: 0 -> 0 (0.00 %)
Spilled VGPRs: 0 -> 0 (0.00 %)
Private memory VGPRs: 0 -> 0 (0.00 %)
Scratch size: 0 -> 0 (0.00 %) dwords per thread
Code Size: 2187264 -> 2180976 (-0.29 %) bytes
LDS: 127 -> 127 (0.00 %) blocks
Max Waves: 3802 -> 3802 (0.00 %)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3486 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3486 >
2020-01-22 15:55:00 +00:00
Boris Brezillon
5b810c7de3
panfrost/midgard: Add missing lowering passes for type/size conversion ops
...
Replace the manual type/size conversion lowering description by one
that's automatically generated and covers all type/size conversions.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3478 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3478 >
2020-01-22 15:31:28 +00:00
Boris Brezillon
fcceeaffae
panfrost/midgard: Add 64 bits float <-> int converters
...
The 64 bit converter cases were missing, add them now.
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/3478 >
2020-01-22 15:31:28 +00:00
Boris Brezillon
fe5fbadd46
panfrost/midgard: Fix mir_print_instruction() for branch instructions
...
Branch instructions should not be treated as regular ALUs.
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/3478 >
2020-01-22 15:31:28 +00:00
Boris Brezillon
e1f9e8d60b
panfrost/midgard: Add f2f64 support
...
So we can convert floats into doubles.
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/3478 >
2020-01-22 15:31:28 +00:00
Boris Brezillon
f53a0799c7
panfrost/midgard: Factorize f2f and u2u handling
...
Those size conversion operations work the same way apart from f2f
using an fmov op code and u2u using an imov. Let's handle them in the
same case block to avoid code duplication.
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/3478 >
2020-01-22 15:31:28 +00:00
Boris Brezillon
6548d01b3d
panfrost/midgard: Make sure promote_fmov() only promotes 32-bit imovs
...
mir_constant_float() assumes we're dealing with 32-bit integers/floats,
which is only the case if reg_mode is equal to midgard_reg_mode_32.
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/3478 >
2020-01-22 15:31:28 +00:00
Boris Brezillon
9566f26ed4
panfrost/midgard: Rework mir_adjust_constants() to make it type/size agnostic
...
Right now, constant combining is not supported in 16 bit mode, and 64
bit mode is simply ignored. Let's rework the function to make it
type/bit-size agnostic.
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/3478 >
2020-01-22 15:31:28 +00:00
Boris Brezillon
15c92d158c
panfrost/midgard: Use a union to manipulate embedded constants
...
Each instruction bundle can contain up to 16 constant bytes. The meaning
of those byte is instruction dependent: it depends on the instruction
native type (int, uint or float) and the instruction reg_mode (8, 16, 32
or 64 bit). Those different layouts can be exposed as a union to
facilitate constants manipulation.
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/3478 >
2020-01-22 15:31:28 +00:00
Lionel Landwerlin
63461cb7e1
anv: ensure prog params are initialized with 0s
...
As a result of 9baa33cef0
our backend compiler leaves params pretty
much untouched. So in order to avoid storing uninitialized values in
the shader cache blobs, just 0 out this array.
I've considered not even allocating this array which works on gen8+
but the vec4 backend still makes a copy of this array and so it
crashes on memcpy on HSW.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 9baa33cef0
("anv: Rework push constant handling")
Reported-by: Tapani Pälli <tapani.palli@intel.com >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Tapani Pälli <tapani.palli@intel.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3516 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3516 >
2020-01-22 16:47:55 +02:00
Alyssa Rosenzweig
4936120230
panfrost: Fix crash in compute variant allocation
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Fixes: d8a3501f1b
("panfrost: Dynamically allocate shader variants")
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3515 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3515 >
2020-01-22 13:48:24 +00:00
Guido Günther
d817f2c696
etnaviv: drm: Don't miscalculate timeout
...
The current code overflows (s * 1000000000) for s >= 5 but that is
e.g. used in etna_bo_cpu_prep.
Signed-off-by: Guido Günther <agx@sigxcpu.org >
Reviewed-by: Jonathan Marek <jonathan@marek.ca >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3509 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3509 >
2020-01-22 13:22:47 +00:00
Alexander van der Grinten
047162d99c
egl: Fix _eglPointerIsDereferencable w/o mincore()
...
On platforms without mincore(), _eglPointerIsDereferencable()
currently just checks whether p != NULL. This is not sufficient:
In the Wayland platform code (i.e., in get_wl_surface_proxy()),
_eglPointerIsDereferencable() is called on the version field
of `struct wl_egl_window` which is 3 on current versions of
Wayland. This causes a segfault when trying to dereference p.
Fix this behavior by assuming that the first page of the
process is never dereferencable.
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3103 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3103 >
2020-01-22 12:55:05 +00:00
Tapani Pälli
39e7492d33
egl/android: fix buffer_count for applications setting max count
...
Problem with previous solution was that it did not take account that
some applications may set a max count for buffers. Therefore we need to
query both min and max and clamp our setting based on that.
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2373
Fixes: be08e6a449
("egl/android: Restrict minimum triple buffering for android color_buffers")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3480 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3480 >
2020-01-22 10:37:04 +00:00
Timur Kristóf
1c9ecb2123
aco: Fix signedness compare warning.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3483 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3483 >
2020-01-22 11:09:17 +01:00
Timur Kristóf
533a20dbd5
aco: Fix maybe-uninitialized warnings.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3483 >
2020-01-22 11:09:14 +01:00
Timur Kristóf
6fb3df2786
aco: Fix -Wstringop-overflow warnings in aco_span.
...
GCC does not understand how aco_span works.
This patch fixes it by casting the aco_span's this pointer
to uintptr_t rather than to a char pointer, effectively
telling GCC not to try to figure it out.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3483 >
2020-01-22 11:09:10 +01:00