- 11 Aug, 2021 40 commits
-
-
Dave Airlie authored
I lost these in my conversion from i965 but they are necessary. This should fix corruption in qt fonts at seen in the minecraft launcher. Fixes: f3630548 ("crocus: initial gallium driver for Intel gfx 4-7") Part-of: <mesa/mesa!12329>
-
Alyssa Rosenzweig authored
Signed-off-by:
Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <mesa/mesa!12205>
-
Alyssa Rosenzweig authored
Signed-off-by:
Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <mesa/mesa!12205>
-
Alyssa Rosenzweig authored
The negative cases here did not pass before this series, showing the bug in the clamp optimization. By introducing the FCLAMP pseudo op, the bug is fixed. Let's ensure we don't regress. Signed-off-by:
Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <mesa/mesa!12205>
-
Alyssa Rosenzweig authored
Map nir_op_fsat/etc to FCLAMP pseudo ops, instead of FADD. There are significantly fewer knobs on FCLAMP, meaning significantly fewer things to get wrong. This fixes two(!) classes of bugs: * Swizzles (failing to lower/compose swizzles on clamps) * Numerical bugs (incorrectly treating +0.0 as an additive identity) Signed-off-by:
Alyssa Rosenzweig <alyssa@collabora.com> Cc: mesa-stable Part-of: <mesa/mesa!12205>
-
Alyssa Rosenzweig authored
Writing these tests brought to light the cluster of bugs fixed in the previous commits. Now that things work, let's ensure they stay working. Signed-off-by:
Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <mesa/mesa!12205>
-
Alyssa Rosenzweig authored
Simplifies pattern matching. This commit by itself fixes multiple numerical issues -- the previous fabsneg check failed to check the round mode or the sign of the zero. That will break Vulkan/OpenCL. Signed-off-by:
Alyssa Rosenzweig <alyssa@collabora.com> Cc: mesa-stable Part-of: <mesa/mesa!12205>
-
Alyssa Rosenzweig authored
Optimizer tests really are global. Signed-off-by:
Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <mesa/mesa!12205>
-
Alyssa Rosenzweig authored
Some of these Bifrost restrictions may be skipped on Valhall. Signed-off-by:
Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <mesa/mesa!12205>
-
Alyssa Rosenzweig authored
Realized this trick when reversing Valhall. Signed-off-by:
Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <mesa/mesa!12205>
-
Alyssa Rosenzweig authored
Signed-off-by:
Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <mesa/mesa!12205>
-
Alyssa Rosenzweig authored
This ensures we can constant fold the ALU ops used to lower: * explicit LOD calculations * array textures * texture offsets * multisample indices Signed-off-by:
Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <mesa/mesa!12205>
-
Alyssa Rosenzweig authored
These rules are not obvious. But they turn out to be exactly what's required by the spec. Signed-off-by:
Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <mesa/mesa!12205>
-
Alyssa Rosenzweig authored
Validates the prior commit. Signed-off-by:
Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <mesa/mesa!12152>
-
Alyssa Rosenzweig authored
Bifrost adds a value for the C factor equaling 2*src. This does not correspond directly to API blend modes so it is not too useful in general. However, it's required for src*dest + dest*src blending to be done in hardware instead of a blend shader. GFXbench uses that blend mode, so it must be important ;-) Signed-off-by:
Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <mesa/mesa!12152>
-
Alyssa Rosenzweig authored
Add unit tests for the fixed-function blending helpers in pan_blend.c. Each test consists of a Porter-Duff blend mode and the associated hardware state. In this commit, we add tests for the most common modes. For motivation, this code has NOT been properly tested in CI. True, functional correctness of the blend module as a whole is tested by dEQP-GLES3.functional.fragment_ops.blend.* among other integration tests. However, this testing is insufficient to check for regressions. Crucially, the following broken patch would clear CI: bool pan_can_fixed_function(...) { return false; } In that case, blend shaders are used 100% of the time, which will regress performance horribly but still pass dEQP. The only clue something went wrong would be some traces changing checksum due to the fixed-function blender producing slightly different output than equivalent blend shaders. By unit testing the fixed blend path, we ensure we always use the fixed-function path when we expect it to. Similarly, using incorrect values for the blend metadata may not affect functional correctness but will increase power consumption. Let's check all the data we export to drivers. Note: due to additive commutativity, there are many pairs of equivalent Mali blend modes. Unfortunately, the vendor is... inconsistent about how to resolve ambiguous modes. Our algorithm for computing modes is correct; the "preferred" values are left in comments since otherwise our tests fail despite correct code. I want to blame Bifrost for this, but Midgard was patient zero. Signed-off-by:
Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <mesa/mesa!12152>
-
Alyssa Rosenzweig authored
Signed-off-by:
Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <mesa/mesa!12152>
-
Alyssa Rosenzweig authored
Needed to pass the "replace" unit test. Signed-off-by:
Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <mesa/mesa!12152>
-
Alyssa Rosenzweig authored
This is more convenient for the Gallium driver and easier to test. Signed-off-by:
Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <mesa/mesa!12152>
-
Alyssa Rosenzweig authored
This is required to disable dithering on a per-draw basis when OPAQUE output is used (bypassing the blender which normally uses the round_to_framebuffer_precision flag to do the same). This functionally reverts: ebc07f4b ("panfrost: Remove padded unorm blendable formats") fae90a79 ("panfrost: Always pick dithered tb formats") while adding the functionality to make them useful. Signed-off-by:
Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <mesa/mesa!12152>
-
Alyssa Rosenzweig authored
Signed-off-by:
Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <mesa/mesa!12328>
-
Alyssa Rosenzweig authored
Useful to cross off CPU texture tiling as the source of bugs. Signed-off-by:
Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <mesa/mesa!12328>
-
Alyssa Rosenzweig authored
To rule out buggy optimization passes when debugging. Signed-off-by:
Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <mesa/mesa!12328>
-
Alyssa Rosenzweig authored
It's an optimization pass -- omitting it should not cause MMU faults (!). Make sure the UBO push mask is set regardless of whether the pass is called, and just call the pass when required. Signed-off-by:
Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <mesa/mesa!12328>
-
Lionel Landwerlin authored
This is confusing opt_cse. Signed-off-by:
Lionel Landwerlin <lionel.g.landwerlin@intel.com> Fixes: 8dfb240b ("nir: Add raytracing shader call lowering pass.") Reviewed-by:
Daniel Schürmann <daniel@schuermann.dev> Part-of: <mesa/mesa!11953>
-
Marcin Ślusarz authored
Changes: - nir_metadata_preserve(..., nir_metadata_dominance) is called only when pass makes progress - nir_metadata_preserve(..., nir_metadata_all) is called when pass doesn't make progress Signed-off-by:
Marcin Ślusarz <marcin.slusarz@intel.com> Reviewed-by:
Erik Faye-Lund <erik.faye-lund@collabora.com> Part-of: <mesa/mesa!12324>
-
Marcin Ślusarz authored
Changes: - nir_metadata_preserve(..., nir_metadata_dominance) is called only when pass makes progress - nir_metadata_preserve(..., nir_metadata_all) is called when pass doesn't make progress Signed-off-by:
Marcin Ślusarz <marcin.slusarz@intel.com> Reviewed-by:
Erik Faye-Lund <erik.faye-lund@collabora.com> Part-of: <mesa/mesa!12324>
-
Marcin Ślusarz authored
No functional changes. Signed-off-by:
Marcin Ślusarz <marcin.slusarz@intel.com> Reviewed-by:
Jesse Natalie <jenatali@microsoft.com> Part-of: <mesa/mesa!12324>
-
Marcin Ślusarz authored
No functional changes. v2: fix build Signed-off-by:
Marcin Ślusarz <marcin.slusarz@intel.com> Reviewed-by:
Jesse Natalie <jenatali@microsoft.com> Part-of: <mesa/mesa!12324>
-
Marcin Ślusarz authored
Signed-off-by:
Marcin Ślusarz <marcin.slusarz@intel.com> Reviewed-by:
Jesse Natalie <jenatali@microsoft.com> Part-of: <mesa/mesa!12324>
-
Marcin Ślusarz authored
Changes: - nir_metadata_preserve(..., nir_metadata_all) is called when pass doesn't make progress v2: fix build Signed-off-by:
Marcin Ślusarz <marcin.slusarz@intel.com> Reviewed-by:
Jesse Natalie <jenatali@microsoft.com> Part-of: <mesa/mesa!12324>
-
Marcin Ślusarz authored
Signed-off-by:
Marcin Ślusarz <marcin.slusarz@intel.com> Reviewed-by:
Jesse Natalie <jenatali@microsoft.com> Part-of: <mesa/mesa!12324>
-
Marcin Ślusarz authored
Signed-off-by:
Marcin Ślusarz <marcin.slusarz@intel.com> Reviewed-by:
Jesse Natalie <jenatali@microsoft.com> Part-of: <mesa/mesa!12324>
-
Marcin Ślusarz authored
Changes: - removal of attr_wa_state (it's passed directly) - nir_metadata_preserve(..., nir_metadata_all) is called when pass doesn't make progress Signed-off-by:
Marcin Ślusarz <marcin.slusarz@intel.com> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> Part-of: <mesa/mesa!12324>
-
Marcin Ślusarz authored
Fixes: a62098ff ("nir: Add a helper for general instruction-modifying passes.") Signed-off-by:
Marcin Ślusarz <marcin.slusarz@intel.com> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> Part-of: <mesa/mesa!12324>
-
Danylo Piliaiev authored
Signed-off-by:
Danylo Piliaiev <dpiliaiev@igalia.com> Part-of: <mesa/mesa!12302>
-
Pierre-Eric Pelloux-Prayer authored
gl_FragDepth default value is gl_FragCoord.z so if a shader does: gl_FragDepth = gl_FragCoord.z we can drop this assignment. v2: use nir_ssa_scalar_resolved and don't do this is gl_FragDepth is wrote multiple times (Jason) v3: - move to its own pass (Jason) - handle var = NULL (Rhys) v4: refactoring (Jason) Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> Part-of: <!10697>
-
Kenneth Graunke authored
We now use intel_ioctl instead. Reviewed-by:
Tapani Pälli <tapani.palli@intel.com> Part-of: <mesa/mesa!12206>
-
Kenneth Graunke authored
We had a 4 byte hole and a 4-byte field breaking up a run of bools. Reviewed-by:
Tapani Pälli <tapani.palli@intel.com> Part-of: <mesa/mesa!12206>
-
Kenneth Graunke authored
This is the virtual memory address of the buffer object. Calling it the BO's address is a lot more obvious than calling it an offset in one of the now many graphics translation tables. Reviewed-by:
Tapani Pälli <tapani.palli@intel.com> Part-of: <mesa/mesa!12206>
-