- 28 Jun, 2018 1 commit
-
-
Gert Wollny authored
Use caps to obtain the multisample sample positions for up to 16 positions and implement the according Gallium interface. v2: remove unrelated chunk (thanks Ilia Mirkin) v3: - also return positions for intermediate sample counts - fix unused varible warning
-
- 25 Jun, 2018 10 commits
-
-
Jakob Bornecrantz authored
This reverts commit 1db4ec05.
-
Jakob Bornecrantz authored
This reverts commit b9361c9d.
-
Jakob Bornecrantz authored
This reverts commit 37eb56d2.
-
Add support for glsl 'invariant' modifier for output data declarations. Gallium drivers that use TGSI serialization currently loose invariant modifiers in glsl shaders. Tested: chromiumos on qemu with virglrenderer. Signed-off-by:
Joe M. Kniss <djmk@google.com>
-
Virgl could save a lot of work converting buffers in the host side between formats if Mesa supported a bunch of other formats when reading pixels. This commit adds cases to handle specific formats so that the values reported by the two calls match more closely the underlying native formats. In GLES is important that IMPLEMENTATION_COLOR_READ_* return the native format and data type because the spec only allows reading with those, besides GL_RGBA or GL_RGBA_INTEGER. Additionally, because virgl currently doesn't implement such conversions, this commit fixes several tests in dEQP-GLES3.functional.fbo.color.clear.*, when using virgl in the guest side. The logic is based on knowledge that is shared with _mesa_format_matches_format_and_type() but we cannot assert that the results match as we don't have all the starting information at both points. So leave the assert out and hope CI comes soon to save us all. v2: * Let R10G10B10A2_UINT fall back to GL_RGBA_INTEGER (Eric Anholt) * Assert with _mesa_format_matches_format_and_type (Eric Anholt) v3: * Remove the assert, as it won't be reliable (Eric Anholt) Signed-off-by:
Tomeu Vizoso <tomeu.vizoso@collabora.com> Reviewed-by:
Gurchetan Singh <gurchetansingh@chromium.org>
-
and PIPE_FORMAT_R8G8B8A8_SRGB, as well. The reason for this is that when Virgl runs with GLES on the host, it cannot directly upload textures in BGRA. So to avoid a conversion step, consider the RGB sRGB formats as well for this extension. Signed-off-by:
Tomeu Vizoso <tomeu.vizoso@collabora.com>
-
If the driver doesn't support PIPE_FORMAT_B8G8R8A8_SRGB, fall back to PIPE_FORMAT_R8G8B8A8_SRGB. Drivers such as Virgl will have a hard time supporting PIPE_FORMAT_B8G8R8A8_SRGB when the host runs GLES, as GL_ABGR isn't as well suported there. So go with PIPE_FORMAT_R8G8B8A8_SRGB so these drivers can avoid a conversion copy. Signed-off-by:
Tomeu Vizoso <tomeu.vizoso@collabora.com>
-
When Mesa itself implements ETC2 decompression, it currently decompresses to formats in the GL_BGRA component order. That can be problematic for drivers which cannot upload the texture data as GL_BGRA, such as Virgl when it's backed by GLES on the host. So this commit adds a flag to _mesa_unpack_etc2_format so callers can specify the optimal component order. In Gallium's case, it will be requested if the format isn't in PIPE_FORMAT_B8G8R8A8_SRGB format. For i965, it will remain GL_BGRA, as before. Signed-off-by:
Tomeu Vizoso <tomeu.vizoso@collabora.com>
-
Gert Wollny authored
For instruction sequences that change the address register with every load the current limit to bail out of the scheduler and reject the optimisation was too tight, i.e. it was expected that at least one pending instruction would be scheduled each time. Give the scheduler more margin to sort out these load sequences by allowing a number of rounds where no instruction is scheduled. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106163 Signed-off-by:
Gert Wollny <gw.fossdev@gmail.com> Reviewed-by:
Dave Airlie <airlied@redhat.com>
-
Gert Wollny authored
This patch is based on https://lists.freedesktop.org/archives/mesa-dev/2018-February/185805.html Dave Airlie: "A bunch of CTS tests led me to write tests/shaders/ssa/fs-while-loop-rotate-value.shader_test which r600/sb always fell over on. GCM seems to move some of the copies into other basic blocks, if we don't allow this to happen then it doesn't seem to schedule them badly. Everything I've read on SSA/phi copies say they have to happen in parallel, so keeping them in the same basic block seems like a good way to keep some of that property." This patch differs from the one proposed by Dave in that it only adds the NF_DONT_MOVE flag to copy_move instructions that are created by split_phi* and that are located in loops. Fixes piglit: tests/shaders/ssa/fs-while-loop-rotate-value.shader_test (no regressions in the shader set). It also fixes all failing tests from dEQP-GLES3.functional.shaders.loops.* Signed-off-by:
Gert Wollny <gw.fossdev@gmail.com> Reviewed-by:
Dave Airlie <airlied@redhat.com>
-
- 23 Jun, 2018 29 commits
-
-
Rob Clark authored
Signed-off-by:
Rob Clark <robdclark@gmail.com>
-
Rob Clark authored
Fixes: cf0c7258 freedreno/a5xx: MSAA Signed-off-by:
Rob Clark <robdclark@gmail.com>
-
Rob Clark authored
This was mistakenly exposed, even though we want atomic counters to be lowered to atomic ops on an SSBO like nearly every other GPU. Which somehow recently started getting segfaults due to calling a null pipe->set_hw_atomic_buffers(). Fixes a crash in stk, and probably other things. Signed-off-by:
Rob Clark <robdclark@gmail.com>
-
Keith Packard authored
This extension provides fences and frame count information to direct display contexts. It uses new kernel ioctls to provide 64-bits of vblank sequence and nanosecond resolution. v2: Rework fence integration into the driver so that waiting for any of a mixture of fence types (wsi, driver or syncobjs) causes the driver to poll, while a list of just syncobjs or just driver fences will block. When we get syncobjs for wsi fences, we'll adapt to use them. v3: Adopt Jason Ekstrand's coding conventions Declare variables at first use, eliminate extra whitespace between types and names. Wrap lines to 80 columns. Suggested-by:
Jason Ekstrand <jason.ekstrand@intel.com> v4: Adapt to WSI fence API change. It now returns VkResult and no longer has an option for relative timeouts. v5: wsi_register_display_event and wsi_register_device_event now use the default allocator when NULL is provided, so remove the computation of 'alloc' here. Signed-off-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
-
Keith Packard authored
This extension provides fences and frame count information to direct display contexts. It uses new kernel ioctls to provide 64-bits of vblank sequence and nanosecond resolution. v2: Adopt Jason Ekstrand's coding conventions Declare variables at first use, eliminate extra whitespace between types and names. Wrap lines to 80 columns. Add extension to list in alphabetical order Suggested-by:
Jason Ekstrand <jason.ekstrand@intel.com> v3: Adapt to WSI fence API change. It now returns VkResult and no longer has an option for relative timeouts. v4: wsi_register_display_event and wsi_register_device_event now use the default allocator when NULL is provided, so remove the computation of 'alloc' here. v5: use zalloc2 instead of alloc2 for the WSI fence. Suggested-by:
Jason Ekstrand <jason.ekstrand@intel.com> Signed-off-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Jason Ekstrand <jason.ekstrand@intel.com>
-
Keith Packard authored
This extension provides fences and frame count information to direct display contexts. It uses new kernel ioctls to provide 64-bits of vblank sequence and nanosecond resolution. v2: Remove DRM_CRTC_SEQUENCE_FIRST_PIXEL_OUT flag. This has been removed from the proposed kernel API. Add NULL parameter to drmCrtcQueueSequence ioctl as we don't care what sequence the event was actually queued to. v3: Adapt to pthread clock switch to MONOTONIC v4: Fix scope for wsi_display_mode andwsi_display_connector allocs Suggested-by:
Jason Ekstrand <jason@jlekstrand.net> v5: Adopt Jason Ekstrand's coding conventions Declare variables at first use, eliminate extra whitespace between types and names. Wrap lines to 80 columns. Use wsi_rel_to_abs_time helper function to convert relative timeouts to absolute timeouts without causing overflow. Suggested-by:
Jason Ekstrand <jason.ekstrand@intel.com> v6: Change WSI fence wait function to return VkResult instead of bool. This makes the meaning of the return value easier to understand, and allows for the indication of failure. Also change the WSI fence wait function to take only absolute timeouts and not provide an option for a relative timeout. No users wanted relative timeouts, and it's simpler if that option isn't available. Terminate the DPMS property loop once we've found the property. Assert that the fence hasn't already been destroyed in wsi_display_fence_destroy. Rearrange the event handler function order in the file to place routines in an easier to find order. Suggested-by:
Jason Ekstrand <jason.ekstrand@intel.com> v7: Adapt to API changes for surface_get_capabilities v8: Use wsi->alloc in register_display_event so that callers don't have to dig out an allocator for us. v9: Fix a few minor formatting issues Suggested-by:
Jason Ekstrand <jason.ekstrand@intel.com> v10: Use wsi->alloc if none provided in wsi_display_fence_alloc. Now that drivers are expected to pass the allocator argument straight through from the application, we need to check those for NULL everywhere. Signed-off-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Jason Ekstrand <jason.ekstrand@intel.com>
-
Keith Packard authored
Handle the case where the set of fences to wait for is not all of the same type by either waiting for them sequentially (waitAll), or polling them until the timer has expired (!waitAll). We hope the latter case is not common. While the current code makes sure that it always has fences of only one type, that will not be true when we add WSI fences. Split out this refactoring to make merging that clearer. v2: Adopt Jason Ekstrand's coding conventions Declare variables at first use, eliminate extra whitespace between types and names. Wrap lines to 80 columns. Suggested-by:
Jason Ekstrand <jason.ekstrand@intel.com> v2: Cast INT64_MAX to uint64_t to make of its use as the maximum possible timeout clearly unsigned to the reader. Suggested-by:
Jason Ekstrand <jason.ekstrand@intel.com> Make anv_wait_for_fences with !waitAll check all fences at least once, even if the requested timeout has already passed. Signed-off-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Jason Ekstrand <jason.ekstrand@intel.com>
-
Bas Nieuwenhuizen authored
Acked-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Acked-by:
Dave Airlie <airlied@redhat.com> Reviewed-by:
Kenneth Graunke <kenneth@whitecape.org>
-
Jason Ekstrand authored
System values are never arrays or structs so we can assume a direct var deref. This simplifies things a bit and prevents us from accidentally throwing away an array index. Suggested-by:
Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> Reviewed-by:
Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> Acked-by:
Rob Clark <robdclark@gmail.com> Acked-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Acked-by:
Dave Airlie <airlied@redhat.com> Reviewed-by:
Kenneth Graunke <kenneth@whitecape.org>
-
Jason Ekstrand authored
Acked-by:
Rob Clark <robdclark@gmail.com> Acked-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Acked-by:
Dave Airlie <airlied@redhat.com> Reviewed-by:
Kenneth Graunke <kenneth@whitecape.org>
-
Jason Ekstrand authored
Note that this patch needs to come late in the series since this pass can be run after any pass that damages nir_metadata_loop_analysis. Acked-by:
Rob Clark <robdclark@gmail.com> Acked-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Acked-by:
Dave Airlie <airlied@redhat.com> Reviewed-by:
Kenneth Graunke <kenneth@whitecape.org>
-
Rob Clark authored
Signed-off-by:
Rob Clark <robdclark@gmail.com> Acked-by:
Rob Clark <robdclark@gmail.com> Acked-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Acked-by:
Dave Airlie <airlied@redhat.com> Reviewed-by:
Kenneth Graunke <kenneth@whitecape.org>
-
Rob Clark authored
Useful in a few other places.. let's not copy-pasta Signed-off-by:
Rob Clark <robdclark@gmail.com> Acked-by:
Rob Clark <robdclark@gmail.com> Acked-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Acked-by:
Dave Airlie <airlied@redhat.com> Reviewed-by:
Kenneth Graunke <kenneth@whitecape.org>
-
Jason Ekstrand authored
This completely reworks the pass to support deref instructions and delete support for old deref chains Acked-by:
Rob Clark <robdclark@gmail.com> Acked-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Acked-by:
Dave Airlie <airlied@redhat.com> Reviewed-by:
Kenneth Graunke <kenneth@whitecape.org>
-
Jason Ekstrand authored
Now that it's rewritten for deref instructions, we can turn it back on. Acked-by:
Rob Clark <robdclark@gmail.com> Acked-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Acked-by:
Dave Airlie <airlied@redhat.com> Reviewed-by:
Kenneth Graunke <kenneth@whitecape.org>
-
Bas Nieuwenhuizen authored
Acked-by:
Rob Clark <robdclark@gmail.com> Acked-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Acked-by:
Dave Airlie <airlied@redhat.com>
-
Bas Nieuwenhuizen authored
Acked-by:
Rob Clark <robdclark@gmail.com> Acked-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Acked-by:
Dave Airlie <airlied@redhat.com>
-
Bas Nieuwenhuizen authored
Acked-by:
Rob Clark <robdclark@gmail.com> Acked-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Acked-by:
Dave Airlie <airlied@redhat.com>
-
Bas Nieuwenhuizen authored
Acked-by:
Rob Clark <robdclark@gmail.com> Acked-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Acked-by:
Dave Airlie <airlied@redhat.com>
-
Jason Ekstrand authored
Acked-by:
Rob Clark <robdclark@gmail.com> Acked-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Acked-by:
Dave Airlie <airlied@redhat.com> Reviewed-by:
Kenneth Graunke <kenneth@whitecape.org>
-
Jason Ekstrand authored
Acked-by:
Rob Clark <robdclark@gmail.com> Acked-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Acked-by:
Dave Airlie <airlied@redhat.com> Reviewed-by:
Kenneth Graunke <kenneth@whitecape.org>
-
Jason Ekstrand authored
Acked-by:
Rob Clark <robdclark@gmail.com> Acked-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Acked-by:
Dave Airlie <airlied@redhat.com> Reviewed-by:
Kenneth Graunke <kenneth@whitecape.org>
-
Jason Ekstrand authored
Acked-by:
Rob Clark <robdclark@gmail.com> Acked-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Acked-by:
Dave Airlie <airlied@redhat.com> Reviewed-by:
Kenneth Graunke <kenneth@whitecape.org>
-
Jason Ekstrand authored
Acked-by:
Rob Clark <robdclark@gmail.com> Acked-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Acked-by:
Dave Airlie <airlied@redhat.com> Reviewed-by:
Kenneth Graunke <kenneth@whitecape.org>
-
Jason Ekstrand authored
Acked-by:
Rob Clark <robdclark@gmail.com> Acked-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Acked-by:
Dave Airlie <airlied@redhat.com> Reviewed-by:
Kenneth Graunke <kenneth@whitecape.org>
-
Jason Ekstrand authored
Acked-by:
Rob Clark <robdclark@gmail.com> Acked-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Acked-by:
Dave Airlie <airlied@redhat.com> Reviewed-by:
Kenneth Graunke <kenneth@whitecape.org>
-
Jason Ekstrand authored
Acked-by:
Rob Clark <robdclark@gmail.com> Acked-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Acked-by:
Dave Airlie <airlied@redhat.com> Reviewed-by:
Kenneth Graunke <kenneth@whitecape.org>
-
Jason Ekstrand authored
Acked-by:
Rob Clark <robdclark@gmail.com> Acked-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Acked-by:
Dave Airlie <airlied@redhat.com> Reviewed-by:
Kenneth Graunke <kenneth@whitecape.org>
-
Jason Ekstrand authored
Acked-by:
Rob Clark <robdclark@gmail.com> Acked-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Acked-by:
Dave Airlie <airlied@redhat.com> Reviewed-by:
Kenneth Graunke <kenneth@whitecape.org>
-