- May 01, 2019
-
-
Kenneth Graunke authored
GACK / this affects the STC PMA equation... Our PMA stall calculations (both Gen8 Z/NP and Gen9 STC) assume that 3DSTATE_WM::ForceThreadDispatchEnable is never enabled. We started using it a while back, and didn't account for that, breaking the PMA conditions. Taking it into account properly would effectively disable the PMA stall workarounds, which isn't what we want either. Instead, we can use 3DSTATE_WM::ForceKillPixelEnable, which affects WM_INT::PixelShaderKillPixel, informing WM_INT::ThreadDispatchEnable, causing the thing we want to happen. It has the same "don't use this" warning as 3DSTATE_WM::ForceThreadDispatchEnable, but hopefully should be no worse, and doesn't mess up the PMA stall.
-
- Apr 30, 2019
-
-
Alok Hota authored
Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
-
Alok Hota authored
Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
-
Alok Hota authored
Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
-
Alok Hota authored
Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
-
Alok Hota authored
It's dependent on other state fields Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
-
Alok Hota authored
Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
-
Using the new resource_get_info function. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110443 Signed-off-by: Julien Isorce <jisorce@oblong.com> Reviewed-by: Leo Liu <leo.liu@amd.com>
-
Re-use existing si_texture_get_offset. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110443 Signed-off-by: Julien Isorce <jisorce@oblong.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
-
Generic plumbing. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110443 Signed-off-by: Julien Isorce <jisorce@oblong.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
-
Rob Clark authored
Needs to update max_half_reg, or be remapped to full reg and update max_reg accordingly, depending on generation.. Signed-off-by: Rob Clark <robdclark@chromium.org>
-
Axel Davy authored
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@gmail.com>
-
Axel Davy authored
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@gmail.com>
-
Axel Davy authored
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@gmail.com>
-
Axel Davy authored
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@gmail.com>
-
Axel Davy authored
All the pieces for constant compact are ready, thus enable the path. Signed-off-by: Axel Davy <davyaxel0@gmail.com>
-
Axel Davy authored
Handle slot mapping if there is one. Signed-off-by: Axel Davy <davyaxel0@gmail.com>
-
Axel Davy authored
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@gmail.com>
-
Axel Davy authored
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@gmail.com>
-
Axel Davy authored
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@gmail.com>
-
Axel Davy authored
Track the number of slots used Signed-off-by: Axel Davy <davyaxel0@gmail.com>
-
Axel Davy authored
This tracking will be useful for constant compaction Signed-off-by: Axel Davy <davyaxel0@gmail.com>
-
Axel Davy authored
The refactoring will make it easier to parse the shader twice for the constant compaction path. Signed-off-by: Axel Davy <davyaxel0@gmail.com>
-
Axel Davy authored
swvp cannot happen with ps, thus it makes sense to force it to false with ps. Signed-off-by: Axel Davy <davyaxel0@gmail.com>
-
Axel Davy authored
Put the shader constant code in one place to better change that code in future commits. Signed-off-by: Axel Davy <davyaxel0@gmail.com>
-
Axel Davy authored
In future commits we will introduce more fine-grained uploads Signed-off-by: Axel Davy <davyaxel0@gmail.com>
-
Axel Davy authored
Signed-off-by: Axel Davy <davyaxel0@gmail.com>
-
Axel Davy authored
Compact the shader key to make room for new elements. Signed-off-by: Axel Davy <davyaxel0@gmail.com>
-
Axel Davy authored
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@gmail.com>
-
Axel Davy authored
Refactor param->rel to enable different paths for constants and inputs relative addressing. Signed-off-by: Axel Davy <davyaxel0@gmail.com>
-
Axel Davy authored
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@gmail.com>
-
Axel Davy authored
Until we use async shader compilation for constant inlining, don't enable it unless user asks for it. Signed-off-by: Axel Davy <davyaxel0@gmail.com>
-
Axel Davy authored
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@gmail.com>
-
Axel Davy authored
The game requires it to display many textures properly. Signed-off-by: Axel Davy <davyaxel0@gmail.com>
-
Axel Davy authored
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@gmail.com>
-
Axel Davy authored
Reuse the generic path to support compressed formats. Signed-off-by: Axel Davy <davyaxel0@gmail.com>
-
Axel Davy authored
Reuse the generic path to support compressed formats. Signed-off-by: Axel Davy <davyaxel0@gmail.com>
-
Axel Davy authored
It will make it easier to reuse in another place. Signed-off-by: Axel Davy <davyaxel0@gmail.com>
-
Axel Davy authored
It will make it easier to reuse in another place. Signed-off-by: Axel Davy <davyaxel0@gmail.com>
-
Axel Davy authored
Rename these variables to a new name which will fit new usages introduced in later commits. Signed-off-by: Axel Davy <davyaxel0@gmail.com>
-