- Sep 16, 2019
-
-
Enric Balletbo i Serra authored
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
-
Enric Balletbo i Serra authored
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
-
Enric Balletbo i Serra authored
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
-
Enric Balletbo i Serra authored
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
-
Enric Balletbo i Serra authored
This reverts commit 1f8b653a. Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
-
Enric Balletbo i Serra authored
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
-
Enric Balletbo i Serra authored
With current mesa amdgpu drivers depends on a newer libdrm_amdgpu library that is not provided by debian. As a workaround, do not build amdgpu drivers as are not needed for our use case. Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
-
Enric Balletbo i Serra authored
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
-
Enric Balletbo i Serra authored
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
-
Juan A. Suarez Romero authored
As 19.2 got some delays, let's extend 19.1 at least in one extra release. Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
-
- Sep 15, 2019
-
-
Lionel Landwerlin authored
This option strictly allocate the minImageCount given by the application at swapchain creation. This works around application that do not deal with the fact that the implementation allocates more images than the minimum specified. v2: Add values in default drirc (Bas) v3: specify engine name/version (Lionel) Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111522 Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com> Cc: 19.2 <mesa-stable@lists.freedesktop.org>
-
Lionel Landwerlin authored
Vulkan applications can register with the following structure : typedef struct VkApplicationInfo { VkStructureType sType; const void* pNext; const char* pApplicationName; uint32_t applicationVersion; const char* pEngineName; uint32_t engineVersion; uint32_t apiVersion; } VkApplicationInfo; This enables the Vulkan implementations to apply workarounds based off matching this description. Here we add a new parameter for matching the driconfig options with the following : <device driver="anv"> <application engine_name_match="MyOwnEngine.*" engine_versions="10:12,40:42"> <option name="blaaah" value="true" /> </application> </device> v2: switch engine name match to use regexps v3: Verify that the regexec returns REG_NOMATCH for match failure (Eric) v4: Add missing bit that went to the following commit (Eric) Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Cc: 19.2 <mesa-stable@lists.freedesktop.org>
-
Lionel Landwerlin authored
We'll use this later for a new driconfig matching parameter. v2: Avoid leak in device creation error case (Bas) Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Cc: 19.2 <mesa-stable@lists.freedesktop.org>
-
- Sep 14, 2019
-
-
Christian Gmeiner authored
Also move the clearing of the bits out of if/else. Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com> Reviewed-by: Eric Anholt <eric@anholt.net>
-
Rob Clark authored
Seen a couple flakes on this one so far. Not sure if it is a real driver problem or not, but skip it to unblock things. Signed-off-by: Rob Clark <robdclark@chromium.org>
-
Lepton Wu authored
Signed-off-by: Lepton Wu <lepton@chromium.org> Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
-
- Sep 13, 2019
-
-
Kenneth Graunke authored
It was calloc'd to 0 which is PIPE_PRIM_POINTS, which means that we fail to notice an initial primitive of points being new, and fail at updating the "primitive is points or lines" field. We do not need to reset this on device loss because we're tracking the last primitive mode sent to us on the CPU via draw_vbo, not the last primitive mode sent to the GPU. Fixes several tests: - dEQP-GLES3.functional.clipping.point.wide_point_clip - dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_center - dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_corner Fixes: dcfca0af ("iris: Set XY Clipping correctly.")
-
Eric Anholt authored
If people fix bugs without updating the expected-fails list, then we end up with a lack of coverage of those failures in the future. Also, some day down the line another developer ends up trying to figure out if the bug was actually fixed or their environment is just failing to reproduce it. Suggested-by: Kristian H. Kristensen <hoegsberg@google.com> Reviewed-by: Adam Jackson <ajax@redhat.com> Acked-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
-
Eric Anholt authored
This hasn't failed for me in ~5 minutes of looping over dEQP-GLES3.functional.fbo.msaa.* Reviewed-by: Adam Jackson <ajax@redhat.com> Acked-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
-
Eric Anholt authored
These haven't failed for me in ~10 minutes of looping over draw.random.*. Reviewed-by: Adam Jackson <ajax@redhat.com> Acked-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
-
Andreas Baierl authored
Add a ppir dummy node for nir_ssa_undef_instr, create a reg for it and mark it as undefined, so that regalloc can set it non-interfering to avoid register pressure. Signed-off-by: Andreas Baierl <ichgeh@imkreisrum.de> Reviewed-by: Vasily Khozuzhick <anarsoul@gmail.com> Reviewed-by: Erico Nunes <nunes.erico@gmail.com>
-
Andreas Baierl authored
Signed-off-by: Andreas Baierl <ichgeh@imkreisrum.de> Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com> Reviewed-by: Erico Nunes <nunes.erico@gmail.com>
-
John Stultz authored
Building w/ AOSP, I was hitting the following error: external/mesa3d/src/amd/Android.common.mk:95: error: missing separator. Which was due to the changes to mesa-build-with-llvm missing a line continuation. Fixes: 96b59269 Signed-off-by: John Stultz <john.stultz@linaro.org>
-
Boris Brezillon authored
We are about to patch panfrost_flush() to flush all pending batches, not only the current one. In order to do that, we need to move the 'flush single batch' code to panfrost_batch_submit(). While at it, we get rid of the existing pipelining logic, which is currently unused and replace it by an unconditional wait at the end of panfrost_batch_submit(). A new pipeline logic will be introduced later on. Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
-
Boris Brezillon authored
panfrost_flush() is about to be reworked to flush all pending batches, but we want the fence to block on the last one. Let's move the fence creation logic in panfrost_flush() to prepare for this situation. Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
-
Boris Brezillon authored
panfrost_draw_vbo() Might call the primeconvert/without_prim_restart helpers which will enter the ->draw_vbo() again. Let's delay payloads[].offset_start initialization so we don't initialize them twice. Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
-
Boris Brezillon authored
panfrost_attach_vt_xxx() functions are now passed a batch, and the generated FB desc is kept in panfrost_batch so we can switch FBs without forcing a flush. The postfix->framebuffer field is restored on the next attach_vt_framebuffer() call if the batch already has an FB desc. Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
-
Boris Brezillon authored
So we can emit SET_VALUE jobs for a batch that's not currently bound to the context. Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
-
Boris Brezillon authored
We'll soon be able to flush a batch that's not currently bound to the context, which means ctx->pipe_framebuffer will not necessarily be the FBO targeted by the wallpaper draw. Let's prepare for this case and use ctx->wallpaper_batch in panfrost_blit_wallpaper(). Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
-
Boris Brezillon authored
So we can emit such jobs to a batch that's not currently bound to the context. Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
-
Boris Brezillon authored
We need that if we want to upload transient buffers to a batch that's not currently bound to the context, which in turn will be needed if we want to relax the batch serialization we have right now (only flush batches when we need to: on a flush request, or when one batch depends on the result of other batches). Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
-
Boris Brezillon authored
Rename panfrost_is_scanout() into panfrost_batch_is_scanout(), pass it a batch instead of a context and move the code to pan_job.c. With this in place, we can now test if a batch is targeting a scanout FB even if this batch is not bound to the context. Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
-
Boris Brezillon authored
Will be replaced by something similar but using a BOs as keys instead of resources. Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
-
Boris Brezillon authored
This way we have all the fb_state information directly attached to a batch and can pass only the batch to functions emitting CMDs, which is needed if we want to be able to queue CMDs to a batch that's not currently bound to the context. Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
-
Indrajit Das authored
Signed-off-by: Indrajit Das <indrajit-kumar.das@amd.com> Reviewed-by: Leo Liu <leo.liu@amd.com>
-
Eric Engestrom authored
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
-
Boris Brezillon authored
mir_foreach_instr_in_block_safe() is based on list_for_each_entry_safe() which is designed to protect against removal of the current entry, but removing the entry placed just after the current one will lead to a use-after-free situation. Luckily, the midgard_pair_load_store() logic guarantees that the instruction being removed (if any) is never placed just after ins which in turn guarantees that the hidden __next variable always points to a valid object. Took me a bit of time to realize that this code was safe, so I'm suggesting to get rid of the inner mir_foreach_instr_in_block_from() loop and rework the code so that the removed instruction is always the current one (which is what the list_for_each_entry_safe() API was initially designed for). While at it, we also get rid of the unecessary insert(ins)/remove(ins) dance by simply moving the instruction around. Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
-
Boris Brezillon authored
list_for_each_entry() does not allow modifying the current item pointer. Let's rework the skip-instructions logic in schedule_block() to not break this rule. Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
-
Iago Toral Quiroga authored
The V3D documentation states that primitive counters are reset when we emit Tile Binning Mode Configuration items, which we do at the start of each draw call, however, in the actual hardware this doesn't seem to take effect when transform feedback is not active (this doesn't happen in the simulator). This causes a problem in the following scenario: glBeginTransformFeedback() glDrawArrays() glPauseTransformFeedback() glDrawArrays() glResumeTransformFeedback() glEndTransformFeedback() The TF pause will trigger a flush of the primitive counters, which results in a correct number of primitives up to that point. In theory, the counter should then be reset when we execute the draw after pausing TF, but that doesn't happen, and since TF is enabled again by the resume command before we end recording, by the time we end the transform feedback recording we again check the counters, but instead of reading 0, we read again the same value we read at the time we paused, incorrectly accumulating that value again. In theory, we should be able to avoid this by using the other method to reset the primitive counters: using operation 1 instead of 0 when we flush the counts to the buffer at the time we pause, but again, this doesn't seem to be work and we still see obsolete counts by the time we end transform feedback. This patch fixes the problem by not accumulating TF primitive counts unless we know we have actually queued draw calls during transform feedback, since that seems to effectively reset the counters. This should also be more performant, since it saves unnecessary stalls for the primitive counters to be updated when we know there haven't been any new primitives drawn. Fixes CTS tests: dEQP-GLES3.functional.transform_feedback.* Reviewed-by: Eric Anholt <eric@anholt.net>
-
Iago Toral Quiroga authored
This was updating the counter for the indexed draw path only, but we are already updating the counter for all paths a bit later, so this is only duplicating counts for indexed paths. Reviewed-by: Eric Anholt <eric@anholt.net>
-