Mesa (master): 41 new commits
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Apr 30 17:19:12 UTC 2019
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ce57f4f7c4d672a88527d0d346e27b902cfc3c6a
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Sat Apr 27 15:33:22 2019 +0200
st/nine: Check discard_delayed_release is set before allocating more
When discard_delayed_release is set (default), we allocate more buffers
and use a different buffer wait path.
Check if it is set, and use the old paths if not
(the alternative buffer wait path could still be used, but there is no
advantage to using it in this case).
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b71c300c70fa33705ddd795998e0fe25452cb2af
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Sat Apr 27 15:25:35 2019 +0200
st/nine: Throttle rendering similarly for thread_submit
thread_submit's throttling depending on the number of internal
back buffers, and wasn't affected by the driver requested
throttling value.
Now it is.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=562f5a35c88f0de62bb6f6c65fa668b6211e4bd0
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Wed Apr 24 23:24:40 2019 +0200
st/nine: Optimize a bit writeonly buffers
Optimize writeonly by passing PIPE_TRANSFER_WRITE
for these buffers instead of the safer
PIPE_TRANSFER_READ_WRITE.
This seems to improve the performance of d3d8 games
using d3d8to9.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=92117c989ca46ec01b58aec630bcca8cab1e8d15
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Tue Apr 9 22:52:28 2019 +0200
st/nine: Use TGSI_SEMANTIC_GENERIC for fog
We used TGSI_SEMANTIC_FOG for fog,
however on vs/ps 3, fog is allowed to have
4 components (even on the ff pipeline according
to a wine test).
Since gallium's TGSI_SEMANTIC_FOG has only one
component, use TGSI_SEMANTIC_GENERIC instead.
Fixes:
https://github.com/iXit/Mesa-3D/issues/346
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=bade3bf6153ecf7adda445a50b0b7009f63e367e
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Mon Jan 21 22:59:24 2019 +0100
st/nine: Enable computing const_ranges
All the pieces for constant compact are ready,
thus enable the path.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5c67db68897843885ac1502c85995527288613f1
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Mon Jan 21 22:50:01 2019 +0100
st/nine: Handle const_ranges in nine_state
Handle slot mapping if there is one.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9942ba2ea3bdfc55e2c832c8a03623d35e3bfe1f
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Wed Jan 23 22:48:17 2019 +0100
st/nine: Cache constant buffer size
The shader constant buffer size with the
constant compaction code can vary depending
on the shader variant compiled (for example if
fog constants are required, etc).
Thus instead of using fixed size for the shader,
add in the variant cache the size required, pass it
to the context, and use this value.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a3cdc466e75814cf5e18b51c760d17385771938d
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Mon Jan 21 22:40:25 2019 +0100
st/nine: Propagate const_range to context
As with the constant compaction we map the constant
slots to new slots, we need to pass that information
to the context which is in charge of uploading
the constants.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7761cda686d8cb59c39d363ed5b6d95d1591bb66
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Sun Jan 20 22:55:01 2019 +0100
st/nine: Prepare constant compaction in nine_shader
When indirect addressing is not used, we know exactly
which constants are accessed, and thus can
have them located in consecutive slots.
We thus parse again the shader with a slot map
for compaction.
The path contains the work inside nine_shader.c for this
path, but it needs some other commits to work, and thus
is not enabled yet by this commit.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=db404507b4adc39a2f67fcd3c28c80f41ad2d46a
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Sun Jan 20 21:35:45 2019 +0100
st/nine: Refactor counting of constants
Track the number of slots used
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=737df40a6387939f47eff38ab5294c24d7661bc7
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Sun Jan 20 22:05:54 2019 +0100
st/nine: Track constant slots used
This tracking will be useful for constant compaction
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d2cab4562cc82f3f6dd2436513f647b1ea271d50
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Sun Jan 20 22:05:30 2019 +0100
st/nine: Refactor ct_ctor
The refactoring will make it easier to parse the shader
twice for the constant compaction path.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6f3da226e67051d92825554bdc6eb7caa8bd9365
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Sun Jan 20 21:43:19 2019 +0100
st/nine: Make swvp_on imply IS_VS
swvp cannot happen with ps, thus it makes
sense to force it to false with ps.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d57d1436d3e57748770803cdb148609825cb5a3e
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Sun Jan 20 20:57:01 2019 +0100
st/nine: Refactor shader constants ureg_src computation
Put the shader constant code in one place to better change
that code in future commits.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6d86292f8acd96c3ac4f6e7c52c9f66475953790
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Sun Jan 20 20:44:17 2019 +0100
st/nine: Manually upload vs and ps constants
In future commits we will introduce more fine-grained
uploads
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1ddeb43537f2f1d702372b65aa8bf83b83f10ba8
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Sun Jan 20 11:25:47 2019 +0100
st/nine: use helper ureg_DECL_sampler everywhere
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3717ec415779746b66b47a0dda28c2c5ea9fcef8
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Sun Jan 13 22:25:46 2019 +0100
st/nine: Compact pixel shader key
Compact the shader key to make room for new
elements.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2acbd977d793fe8f2886b1f6f9b9c7f793a675b5
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Sun Jan 13 22:16:35 2019 +0100
st/nine: Compact nine_ff_get_projected_key
Only the first four sampler slots can be used
by ff ps < 0x14, thus the size of the key
can be reduced.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a92a43d41dd2ae4719ee314cbf831583c751754a
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Thu Apr 5 22:38:03 2018 +0200
st/nine: Refactor param->rel
Refactor param->rel to enable different paths
for constants and inputs relative addressing.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5974401a4adba2373232fc72940db96c32bbb4b6
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Thu Apr 5 22:31:27 2018 +0200
st/nine: Regroup param->rel tests
Regroup all the param->rel assertions into one assertion for better clarity
and better covering.
param->rel on an input can only happen with float constants for vs,
or with inputs on vs/ps 3.0.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=12654a2fda53d46246d4f0f1f792377b57ad769e
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Sat Apr 27 18:30:02 2019 +0200
st/nine: Control shader constant inlining with drirc
Until we use async shader compilation for constant inlining,
don't enable it unless user asks for it.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=95f25bef546806c8d0e6670aceadf28eb64aea1a
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Sun Apr 8 17:06:00 2018 +0200
st/nine: Recompile optimized shaders based on b/i consts
Boolean and Integer constants are used in d3d9 for flow control.
Boolean are used for if/then/else and Integer constants
for loops.
The compilers can generate better code if these values are known
at compilation.
I haven't met so far a game that would change the values of these
constants frequently (and when they do, they set to the values used
for the previous draw call, and thus the changes get filtered out).
Thus it makes sense to inline these constants and recompile the shaders.
The commit sets a bound to the number of variants for a given shader
to avoid too many shaders to be generated.
One drawback is it means more shader compilations. It would probably
make sense to compile these shaders asynchronously or let the user
control the behaviour with an env var, but this is not done here.
The games I tested hit very few shader variants, and the performance
impact was negligible, but it could help for games with uber shaders.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e57267a09ee2daf13d54539679e2e322943a58dd
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Sat Apr 27 19:18:00 2019 +0200
drirc: Add Gallium nine workaround for Rayman Legends
The game requires it to display many textures properly.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c097ff36174d77df9b641be392c5f15d4ab930fd
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Wed Apr 10 23:09:08 2019 +0200
st/nine: Add drirc option to use data_internal for dynamic textures
dynamic textures seem to have predictable stride. This stride
should be the same as for a ram buffer.
It seems some game don't check the actual stride value, assuming
it to be the expected one.
Thus this workaround (protected by drirc option) is to use an intermediate
ram buffer.
Fixes Rayman Legends texture issues when enabled.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7dcc85b46e2253c1efd425e55749e1714a260a21
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Wed Apr 10 23:05:58 2019 +0200
st/nine: Support internal compressed format for volumes
Reuse the generic path to support compressed formats.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1b0a7d05575bccaf73f0e558c0ea4cf5aae0a76a
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Wed Apr 10 23:03:06 2019 +0200
st/nine: Support internal compressed format for surfaces
Reuse the generic path to support compressed formats.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=22c41d2d81efd233b2cde33d6664acc5b48323da
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Wed Apr 10 22:53:02 2019 +0200
st/nine: Refactor volume GetSystemMemPointer
It will make it easier to reuse in another place.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=85c9d92067d28ce07c3a0c41f4ea225b3768db9c
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Wed Apr 10 22:48:51 2019 +0200
st/nine: Refactor surface GetSystemMemPointer
It will make it easier to reuse in another place.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8ba4f73911a80f1dd377e5041d90e8da72d61478
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Wed Apr 10 22:38:43 2019 +0200
st/nine: rename *_conversion to *_internal
Rename these variables to a new name which will
fit new usages introduced in later commits.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4a51a7c1da54e853dbd59d1ae714d0acf14f3593
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Wed Apr 10 22:21:48 2019 +0200
st/nine: Optimize volume upload with conversion
Use nine_context_box_upload instead of locking the pipe
for volume upload with format conversion.
nine_context_box_upload already handles format
conversion.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=fac3f993772edc9be1682b439b45ddbe3463bd4f
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Wed Apr 10 22:16:54 2019 +0200
st/nine: Optimize surface upload with conversion
Use nine_context_box_upload instead of locking the pipe
for surface upload with format conversion.
nine_context_box_upload already handles format
conversion.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4ca6b1dfd1055f7eb1679deb3e7194c19e4584e8
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Sat Apr 13 12:25:57 2019 +0200
st/nine: Fix SINCOS input
SINCOS takes an input with replicated swizzle.
the swizzle can be on any component, not just x.
Enable it to read from any component, but also
use a temporary register to avoid dst/src aliasing.
No known game is fixed by this change as it seems
the input swizzle is commonly on x for this instruction,
and src and dst don't alias.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f4ae483c44ffdc56f990f6ebff7b9b4dde2cd54f
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Sat Apr 13 00:39:59 2019 +0200
st/nine: Ignore nooverwrite for systemmem
Systemmem has a specific behaviour we don't
mimick exactly.
That makes Halo feel free to use nooverwrite
with it all the time, even when reading again
at the same location.
Ignore nooverwrite to have proper synchronization.
Fixes: https://github.com/iXit/Mesa-3D/issues/348
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=fd3a870401acd0fd3ff2369659a77e42aab81489
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Wed Apr 10 21:07:29 2019 +0200
st/nine: Enable modifiers on ps 1.X texcoords
For many ps 1.X instructions, we were reading the
texcoords directly, instead of through tx_src_param,
resulting in modifiers getting ignored.
Use tx_src_param for all these instructions.
Fixes: https://github.com/iXit/Mesa-3D/issues/337
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1fc0714039ce5fced2317d258fbc467af39f3dca
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Tue Apr 9 23:57:37 2019 +0200
st/nine: Always return OK on SetSoftwareVertexProcessing
This would need more tests to know exactly
if INVALIDCALL can be returned in some
situations.
It seems some games expect D3D_OK,
even when noop and illegal.
Fixes:
https://github.com/iXit/Mesa-3D/issues/302
https://github.com/iXit/Mesa-3D/issues/338
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d9a4025fa3232876b586fd80f4d77681abf923ec
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Wed Apr 24 23:58:38 2019 +0200
st/nine: Finish if nooverwrite after normal mapping
d3d's nooverwrite and gallium's unsynchronized
have different semantics.
Indeed nooverwrite says the applications won't
write to locations needed by previous draws,
which is less strong than unsynchronized which
won't synchronize previous writes.
Thus in case app is locking without discard/nooverwrite,
then using nooverwrite, we need to add a
synchronization.
Fixes: https://github.com/iXit/wine-nine-standalone/issues/29
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e502c4d89254439d5f026375737cb7af3f9ec5b7
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Thu Apr 4 23:08:35 2019 +0200
st/nine: Fix buffer/texture unbinding in nine_state_clear
Previously nine_state_clear was not using
NineBindBufferToDevice and NineBindTextureToDevice
to unbind buffers and textures (but used nine_bind)
This was resulting in an uncorrect bind count for these
resources.
Combined with
0ec4e5f630ed68ece3f176b174cfd66eff023904
Some buffers were scheduled to be uploaded directly
after they were locked (because the bind count incorrectly
assumed they were needed for the next draw call),
which resulted in uploads before the data was written.
To simplify a bit the code (and because I needed to
add a pointer to device),
remove the stateblock usage from nine_state_clear and
rename to nine_device_state_clear.
Fixes:
https://github.com/iXit/Mesa-3D/issues/345
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=bb3b8f8e01129ed35ea47463716def7c375f0f19
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Thu Apr 4 23:06:44 2019 +0200
st/nine: Upload managed buffers only at draw using them
When a draw call is emited, buffers in the
device->update_buffers list are uploaded.
This patch removes buffers from the list if they
are not bound anymore.
Behaviour found studying:
https://github.com/iXit/Mesa-3D/issues/345
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5df96995efc37260b2675f61804c94a1a632609f
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Thu Apr 4 23:01:08 2019 +0200
st/nine: Upload managed textures only at draw using them
When a draw call is emited, textures in the
device->update_textures list are uploaded.
This patch removes textures from the list if they
are not bound anymore.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=394420ebb3eec6d8956588ee13380d5059e14bea
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Fri Feb 22 20:41:00 2019 +0100
st/nine: Use FLT_MAX/2 for RCP clamping
This seems to fix Rayman (which adds things
to the RCP result, and thus gets an Inf),
while not having regressions.
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=64a45ba7f83095a8a44a7b1104f31bab68b259fe
Author: Axel Davy <davyaxel0 at gmail.com>
Date: Sat Apr 27 15:45:12 2019 +0200
st/nine: Fix D3DWindowBuffer_release for old wine nine support
No-one reported bugs for that, but is seems
c442dd789066104e5e84cc90d98a7ff5cd6296cf
and previous commits used APIs not defined until
nine minor version 3.
This patch should prevent crash in this case.
Also turn off the resize feature in this case,
as we won't prevent a buffer leak anymore.
Cc: "19.0" mesa-stable at lists.freedesktop.org
Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
More information about the mesa-commit
mailing list