URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8008bc8cba6b0de9345ac8d6f130ea61495a2ee7
Author: Daniel Stone <[email protected]>
Date: Mon May 15 22:22:32 2017 +0100
egl/wayland: Ensure we get a back buffer
Commit 9ca6711faa03 changed the Wayland winsys to only block for the
frame callback inside SwapBuffers, rather than get_back_bo. get_back_bo
would perform a single non-blocking Wayland event dispatch, to try to
find any release events which we had pulled off the wire but not
actually processed. The blocking dispatch was moved to SwapBuffers.
This removed a guarantee that we would've processed all events inside
get_back_bo(), and introduced a failure whereby the server could've sent
a buffer release event, but we wouldn't have read it. In clients
unconstrained by SwapInterval (rendering ~as fast as possible), which
were being displayed directly without composition (buffer release delayed),
this could lead to get_back_bo() failing because there were no free
buffers available to it.
The drawing rightly failed, but this was papered over because of the
path in eglSwapBuffers() which attempts to guarantee a BO, in order to
support calling SwapBuffers twice in a row with no rendering actually
having been performed.
Since eglSwapBuffers will perform a blocking dispatch of Wayland
events, a buffer release would have arrived by that point, and we
could then choose a buffer to post to the server. The effect was that
frames were displayed out-of-order, since we grabbed a frame with random
past content to display to the compositor.
Ideally get_back_bo() failing should store a failure flag inside the
surface and cause the next SwapBuffers to fail, but for the meantime,
restore the correct behaviour such that get_back_bo() no longer fails.
Signed-off-by: Daniel Stone <[email protected]>
Reported-by: Eero Tamminen <[email protected]>
Acked-by: Pekka Paalanen <[email protected]>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98833
Fixes: 9ca6711faa03 ("Revert "wayland: Block for the frame callback in
get_back_bo not dri2_swap_buffers"")
(cherry picked from commit 1f2d0093bf5084f65a923582881dc74153c804a4)
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ff3aa6a877391ec6d28a58027048852a901bfb62
Author: Daniel Stone <[email protected]>
Date: Fri May 5 14:49:09 2017 +0100
egl/wayland: Use per-surface event queues
During display initialisation, we need a separate event queue to handle
the registry events, which is correctly handled. But we also need
separate per-surface event queues to handle swapchain-related events,
such as surface frame events and buffer release events. This avoids two
surfaces from the same EGLDisplay, both current on separate threads,
dispatching each other's events.
Create separate per-surface event queues, create wl_surface and wl_drm
proxy wrapper objects per surface, so we eliminate the race around
sending events to the wrong queue. swrast buffers do not need a
dedicated proxy wrapper, as the wl_shm_pool used to create the
wl_buffers, being transient, can itself be assigned to a queue.
Signed-off-by: Daniel Stone <[email protected]>
Reviewed-by: Lionel Landwerlin <[email protected]>
Fixes: 36b9976e1f99 ("egl/wayland: Avoid race conditions when on non-main
thread")
Cc: [email protected]
(cherry picked from commit 03dd9a88b0be17ff0ce91e92f6902a9a85ba584a)
Squashed with:
egl/wayland: verify event queue was allocated
We're already verified that 'window' wasn't NULL, I'm guessing this
allocation error is about the newly created queue.
CID: 1409754
Fixes: 03dd9a88b0b ("egl/wayland: Use per-surface event queues")
Signed-off-by: Lionel Landwerlin <[email protected]>
Reviewed-by: Daniel Stone <[email protected]>
(cherry picked from commit 30dc56bb5b313ae67c6e8648e23bb38c8e737488)
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=701a10b56ecccc4aaeb1356d5c465b6bf26fc68f
Author: Daniel Stone <[email protected]>
Date: Fri May 5 14:44:20 2017 +0100
egl/wayland: Don't open-code roundtrip
wl_display_roundtrip_queue() exists and can replace roundtrip(). The
API was introduced with wayland 1.6, while we currently require 1.11.
Signed-off-by: Daniel Stone <[email protected]>
Reviewed-by: Emil Velikov <[email protected]>
Reviewed-by: Lionel Landwerlin <[email protected]>
Cc: [email protected]
(cherry picked from commit 8118bc269f39ea0b965752ea89b886b28094db42)
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=afbe5bf434fb059c5e064bbbb90f2e275445c60a
Author: Daniel Stone <[email protected]>
Date: Tue May 2 10:06:32 2017 +0100
vulkan/wsi/wayland: Use proxy wrappers for swapchain
Though most swapchain operations used a queue, they were racy in that
the object was created with the queue only set later, meaning that its
event could potentially be dispatched from the default queue in between
these two steps.
Use proxy wrappers to avoid this race, also assigning wl_buffers created
for the swapchain to the event queue.
Signed-off-by: Daniel Stone <[email protected]>
Reviewed-by: Lionel Landwerlin <[email protected]>
Cc: [email protected]
(cherry picked from commit 5034c615582add2be9309dc1d7383fb0daba6dd3)
[Emil Velikov: wsi_wl_swapchain is missing surface_version, move
image_count]
Signed-off-by: Emil Velikov <[email protected]>
Conflicts:
src/vulkan/wsi/wsi_common_wayland.c
Squahed with:
vulkan/wsi/wayland: Fix proxy wrappers for swapchain recreation
Before the swapchain event queue is destroyed, all proxy objects that
reference
it must be dropped. Otherwise we risk a use-after-free if a frame callback
event
or buffer release events are received afterwards.
This happens when an application destroys and recreates a swapchain in FIFO
mode between two frames without using the
VkSwapchainCreateInfoKHR::oldSwapchain
mechanism to keep the old swapchain until after the next redraw.
Fixes: 5034c615582a ("vulkan/wsi/wayland: Use proxy wrappers for swapchain")
Signed-off-by: Philipp Zabel <[email protected]>
Reviewed-by: Daniel Stone <[email protected]>
Cc: [email protected]
(cherry picked from commit 1586768e7475a2732650f0ec2738b4e8429e4b40)
[Emil Velikov: image_count is not in base]
Signed-off-by: Emil Velikov <[email protected]>
Conflicts:
src/vulkan/wsi/wsi_common_wayland.c
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=55e66999fc67063b5b5294193cc52a5ccaa6439f
Author: Daniel Stone <[email protected]>
Date: Tue May 2 10:04:33 2017 +0100
vulkan/wsi/wayland: Use per-display event queue
Calling random callbacks on the display's event queue is hostile, as
we may call into client code when it least expects it. Create our own
event queue, one per wsi_wl_display, and use that for the registry.
Signed-off-by: Daniel Stone <[email protected]>
Reviewed-by: Lionel Landwerlin <[email protected]>
Cc: [email protected]
(cherry picked from commit c902a1957d079941823006d56b6810e1e85be4b0)
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f7cc55dce2aac2b5f7d2b40ddbdfcdeca716a526
Author: Daniel Stone <[email protected]>
Date: Tue May 2 09:51:40 2017 +0100
vulkan/wsi/wayland: Remove roundtrip when creating image
There's no need to call wl_display_roundtrip() after trying to create a
buffer through wl_drm; if it succeeds then everything is fine, and if it
fails, then we get a fatal protocol error so can't recover anyway.
Additionally, doing a roundtrip on the default / main application queue,
is destructive anyway, so would need to be its own queue.
Signed-off-by: Daniel Stone <[email protected]>
Reviewed-by: Lionel Landwerlin <[email protected]>
Cc: [email protected]
(cherry picked from commit afe8c8a2997950cd63076b7c9eba39e1858fee43)
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b4a82e7f47f3ef6309cd18dbbb1c34e9daa217c7
Author: Daniel Stone <[email protected]>
Date: Fri Apr 28 16:49:47 2017 +0200
vulkan: Fix Wayland uninitialised registry
Untangle the exit cleanup paths so we don't try to use the registry
variable before it's been initialised.
Signed-off-by: Daniel Stone <[email protected]>
Reviewed-by: Lionel Landwerlin <[email protected]>
Cc: [email protected]
(cherry picked from commit d9a8bba7f44f7042f0bbd659d0ed342236423dd3)
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6dd570fa5709090384ced4d3bd68c06ece06c9aa
Author: Ilia Mirkin <[email protected]>
Date: Sat May 20 03:11:12 2017 -0400
nvc0/ir: SHLADD's middle source must be an immediate
The instruction encodings only allow for immediates. Don't try to
replace a zero (which is dumb to have in that op in any case) with RZ.
Signed-off-by: Ilia Mirkin <[email protected]>
Cc: [email protected]
(cherry picked from commit 82e77d4e4484b5d4f6a7b4751a17c882e6d2ad69)
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=33f3ae1df2fd88db971dcb84e252a3f9bfe0730d
Author: Emil Velikov <[email protected]>
Date: Fri Nov 25 17:55:52 2016 +0000
st/va: fix misplaced closing bracket
It's been like this since the code was introduced.
Fixes: 86eb4131a90 (st/va: add headless support, i.e. VA_DISPLAY_DRM)
Cc: <[email protected]>
Cc: Julien Isorce <[email protected]>
Signed-off-by: Emil Velikov <[email protected]>
Reviewed-by: Nayan Deshmukh <[email protected]>
Reviewed-by: Christian König <[email protected]>
(cherry picked from commit aaea53c2c02e4d5352ce3d08dfd43b2676d32000)
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=87d16afa6ff11e7c72870bdba4a514858b31f1ab
Author: Nanley Chery <[email protected]>
Date: Thu May 11 15:57:59 2017 -0700
i965/formats: Update the three-channel DXT1 mappings
The procedure for decompressing an opaque DXT1 OpenGL format is
dependant on the comparison of two colors stored in the first 32 bits of
the compressed block. Here's the specified OpenGL behavior for
reference:
The RGB color for a texel at location (x,y) in the block is given by:
RGB0, if color0 > color1 and code(x,y) == 0
RGB1, if color0 > color1 and code(x,y) == 1
(2*RGB0+RGB1)/3, if color0 > color1 and code(x,y) == 2
(RGB0+2*RGB1)/3, if color0 > color1 and code(x,y) == 3
RGB0, if color0 <= color1 and code(x,y) == 0
RGB1, if color0 <= color1 and code(x,y) == 1
(RGB0+RGB1)/2, if color0 <= color1 and code(x,y) == 2
BLACK, if color0 <= color1 and code(x,y) == 3
The sampling operation performed on an opaque DXT1 Intel format essentially
hard-codes the comparison result of the two colors as color0 > color1.
This means that the behavior is incompatible with OpenGL. This is stated
in the SKL PRM, Vol 5: Memory Views:
Opaque Textures (DXT1_RGB)
Texture format DXT1_RGB is identical to DXT1, with the exception that
the
One-bit Alpha encoding is removed. Color 0 and Color 1 are not
compared, and
the resulting texel color is derived strictly from the Opaque Color
Encoding.
The alpha channel defaults to 1.0.
Programming Note
Context: Opaque Textures (DXT1_RGB)
The behavior of this format is not compliant with the OGL spec.
The opaque and non-opaque DXT1 OpenGL formats are specified to be
decoded in exactly the same way except the BLACK value must have a
transparent alpha channel in the latter. Use the four-channel BC1 Intel
formats with the alpha set to 1 to provide the behavior required by the
spec. Note that the alpha is already set to 1 for RGB formats in
brw_get_texture_swizzle().
v2: Provide a more detailed commit message (Kenneth Graunke).
v3: Ensure the alpha channel is set to 1 for DXT1 formats.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100925
Cc: <[email protected]>
Acked-by: Tapani Pälli <[email protected]> (v1)
Reviewed-by: Kenneth Graunke <[email protected]>
Signed-off-by: Nanley Chery <[email protected]>
(cherry picked from commit 688ddb85c8c3357d8e1e9d360c74cd728b128d98)
[Emil Velikov: attribute for BRW to ISL format rename]
Signed-off-by: Emil Velikov <[email protected]>
Conflicts:
src/mesa/drivers/dri/i965/brw_surface_formats.c
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=cbd4721621accbb501ced207f78657c626cdb4f3
Author: Nanley Chery <[email protected]>
Date: Thu May 11 15:57:59 2017 -0700
anv/formats: Update the three-channel BC1 mappings
The procedure for decompressing an opaque BC1 Vulkan format is dependant on
the
comparison of two colors stored in the first 32 bits of the compressed
block.
Here's the specified OpenGL (and Vulkan) behavior for reference:
The RGB color for a texel at location (x,y) in the block is given by:
RGB0, if color0 > color1 and code(x,y) == 0
RGB1, if color0 > color1 and code(x,y) == 1
(2*RGB0+RGB1)/3, if color0 > color1 and code(x,y) == 2
(RGB0+2*RGB1)/3, if color0 > color1 and code(x,y) == 3
RGB0, if color0 <= color1 and code(x,y) == 0
RGB1, if color0 <= color1 and code(x,y) == 1
(RGB0+RGB1)/2, if color0 <= color1 and code(x,y) == 2
BLACK, if color0 <= color1 and code(x,y) == 3
The sampling operation performed on an opaque DXT1 Intel format essentially
hard-codes the comparison result of the two colors as color0 > color1. This
means that the behavior is incompatible with OpenGL and Vulkan. This is
stated
in the SKL PRM, Vol 5: Memory Views:
Opaque Textures (DXT1_RGB)
Texture format DXT1_RGB is identical to DXT1, with the exception that
the
One-bit Alpha encoding is removed. Color 0 and Color 1 are not
compared, and
the resulting texel color is derived strictly from the Opaque Color
Encoding.
The alpha channel defaults to 1.0.
Programming Note
Context: Opaque Textures (DXT1_RGB)
The behavior of this format is not compliant with the OGL spec.
The opaque and non-opaque BC1 Vulkan formats are specified to be decoded in
exactly the same way except the BLACK value must have a transparent alpha
channel in the latter. Use the four-channel BC1 Intel formats with the alpha
set to 1 to provide the behavior required by the spec.
v2 (Kenneth Graunke):
- Provide a more detailed commit message.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100925
Cc: <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Signed-off-by: Nanley Chery <[email protected]>
(cherry picked from commit 56458cb168bf79ae51ba1efc3acec15874cc34a9)
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ca697dda60b7307adc5c9e16ad49a9b6e10ed5f0
Author: Tom Stellard <[email protected]>
Date: Fri May 5 01:07:00 2017 +0000
gallivm: Make sure module has the correct data layout when pass manager runs
The datalayout for modules was purposely not being set in order to work
around
the fact that the ExecutionEngine requires that the module's datalayout
matches the datalayout of the TargetMachine that the ExecutionEngine is
using.
When the pass manager runs on a module with no datalayout, it uses
the default datalayout which is little-endian. This causes problems
on big-endian targets, because some optimizations that are legal on
little-endian or illegal on big-endian.
To resolve this, we set the datalayout prior to running the pass
manager, and then clear it before creating the ExectionEngine.
This patch fixes a lot of piglit tests on big-endian ppc64.
Cc: [email protected]
(cherry picked from commit 14e525a4d70649eb10185bebd2aef9dc339fb5e6)
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b6ad01c7a2aa92b9c456e63068eda21ba905b8f1
Author: Chad Versace <[email protected]>
Date: Thu May 11 21:49:14 2017 -0700
egl: Partially revert 23c86c74, fix eglMakeCurrent
Fixes regressions in Android CtsVerifier.apk on Intel Chrome OS devices
due to incorrect error handling in eglMakeCurrent. See below on how to
confirm the regression is fixed.
This partially reverts
commit 23c86c74cc450a23848b85cfe914376caede1cdf
Author: Chad Versace <[email protected]>
Subject: egl: Emit error when EGLSurface is lost
The problem with commit 23c86c74 is that, once an EGLSurface became
lost, the app could never unbind the bad surface. Each attempt to unbind
the bad surface with eglMakeCurrent failed with EGL_BAD_CURRENT_SURFACE.
Specificaly, the bad commit added the error handling below. #2 and #3
were right, but #1 was wrong.
1. eglMakeCurrent emits EGL_BAD_CURRENT_SURFACE if the calling
thread has unflushed commands and either previous surface is no
longer valid.
2. eglMakeCurrent emits EGL_BAD_NATIVE_WINDOW if either new surface
is no longer valid.
3. eglSwapBuffers emits EGL_BAD_NATIVE_WINDOW if the swapped surface
is no longer valid.
Whe I wrote the bad commit, I misunderstood the EGL spec language
for #1. The correct behavior is, if I understand correctly now, is
below. This patch doesn't implement the correct behavior, though, it
just reverts the broken behavior.
- Assume a bound EGLSurface is no longer valid.
- Assume the bound EGLContext has unflushed commands.
- The app calls eglMakeCurrent. The spec requires eglMakeCurrent to
implicitly flush. After flushing, eglMakeCurrent emits
EGL_BAD_CURRENT_SURFACE and does *not* alter the thread's
current bindings.
- If the app calls eglMakeCurrent again, and the app inserts no
commands into the GL command stream between the two eglMakeCurrent
calls, then this second eglMakeCurrent succeeds without emitting an
error.
How to confirm this fixes the regression:
Download android-cts-verifier-7.1_r5-linux_x86-x86.zip from
source.android.com, unpack, and `adb install CtsVerifier.apk`.
Run test "Projection Cube". Click the Pass button (a
green checkmark). Then run test "Projection Widget". Confirm that
widgets are visible and that logcat does not complain about
eglMakeCurrent failure.
Then confirm there are no regressions in the cts-traded module that
commit 263243b1 fixed:
cts-tf > run cts --skip-preconditions --skip-device-info \
-m CtsCameraTestCases \
-t android.hardware.camera2.cts.RobustnessTest
Tested with Chrome OS board "reef".
Fixes: 23c86c74 (egl: Emit error when EGLSurface is lost)
Acked-by: Tapani Pälli <[email protected]>
Cc: "17.1" <[email protected]>
Cc: Tomasz Figa <[email protected]>
Cc: Nicolas Boichat <[email protected]>
Cc: Emil Velikov <[email protected]>
(cherry picked from commit 8f62d21bd72059d723f4626f76de6fec4a569616)
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8be7de22353217571a6be9e59e28257545433c29
Author: Samuel Iglesias Gonsálvez <[email protected]>
Date: Wed Apr 19 11:18:35 2017 +0200
i965/vec4: load dvec3/4 uniforms first in the push constant buffer
Reorder the uniforms to load first the dvec4-aligned variables in the
push constant buffer and then push the vec4-aligned ones. It takes
into account that the relocated uniforms should be aligned to their
channel size.
This fixes a bug were the dvec3/4 might be loaded one part on a GRF and
the rest in next GRF, so the region parameters to read that could break
the HW rules.
v2:
- Fix broken logic.
- Add a comment to explain what should be needed to optimise the usage
of the push constant buffer slots, as this patch does not pack the
uniforms.
v3:
- Implemented the push constant buffer usage optimization.
Signed-off-by: Samuel Iglesias Gonsálvez <[email protected]>
Cc: "17.1" <[email protected]>
Acked-by: Francisco Jerez <[email protected]>
(cherry picked from commit e69e5c7006da80af62c9ef08dec215b3b4b30946)
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b79233537ca35c24c101091ecc8c2e83025a4605
Author: Samuel Iglesias Gonsálvez <[email protected]>
Date: Wed Apr 19 10:35:07 2017 +0200
i965/vec4: fix swizzle and writemask when loading an uniform with constant
offset
It was setting XYWZ swizzle and writemask to all uniforms, no matter if they
were a vector or scalar, so this can lead to problems when loading them
to the push constant buffer.
Moreover, 'shift' calculation was designed to calculate the offset in
DWORDS, but it doesn't take into account DFs, so the calculated swizzle
for the later ones was wrong.
The indirect case is not changed because MOV INDIRECT will write
to all components. Added an assert to verify that these uniforms
are aligned.
v2:
- Fix 'shift' calculation (Curro)
- Set both swizzle and writemask.
- Add assert(shift == 0) for the indirect case.
Signed-off-by: Samuel Iglesias Gonsálvez <[email protected]>
Cc: "17.1" <[email protected]>
Reviewed-by: Francisco Jerez <[email protected]>
(cherry picked from commit 8aa6ada8384a961b37dfefec7f9e40e5a4e27ce7)
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=98f30c71175d66d0c2e5f208cb9ee904bb23ee22
Author: Samuel Iglesias Gonsálvez <[email protected]>
Date: Fri May 5 10:42:15 2017 +0200
i965/vec4/gs: restore the uniform values which was overwritten by failed
vec4_gs_visitor execution
We are going to add a packing feature to reduce the usage of the push
constant buffer. One of the consequences is that 'nr_params' would be
modified by vec4_visitor's run call, so we need to restore it if one of
them failed before executing the fallback ones. Same thing happens to the
uniforms values that would be reordered afterwards.
Fixes GL45-CTS.arrays_of_arrays_gl.InteractionFunctionCalls2 when
the dvec4 alignment and packing patch is applied.
Signed-off-by: Samuel Iglesias Gonsálvez <[email protected]>
Cc: "17.1" <[email protected]>
Acked-by: Francisco Jerez <[email protected]>
(cherry picked from commit 354f7f2cb9c7206e12646c79d8ff5becbaffa61b)
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b50e9022bde70b6f381bf2a717ef7ac77138a9bf
Author: Eric Anholt <[email protected]>
Date: Wed May 17 13:22:39 2017 -0700
vc4: Don't allocate new BOs to avoid synchronization when they're shared.
If X11 did a software fallback to the entire screen, we would throw out
the BO the screen is scanning out from and allocate a new one.
Cc: [email protected]
(cherry picked from commit e8ea42d245cb6adc7f16ee4e96fd89d905d2163a)
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=356b0b2ba1e2b6e43604a5a249e39bf881976ee2
Author: Hans de Goede <[email protected]>
Date: Mon Mar 20 08:41:26 2017 +0100
glxglvnddispatch: Add missing dispatch for GetDriverConfig
Together with some fixes to xdriinfo this fixes xdriinfo not working
with glvnd.
Since apps (xdriinfo) expect GetDriverConfig to work without going to
need through the dance to setup a glxcontext (which is a reasonable
expectation IMHO), the dispatch for this ends up significantly different
then any other dispatch function.
This patch gets the job done, but I'm not really happy with how this
patch turned out, suggestions for a better fix are welcome.
Cc: Kyle Brenneman <[email protected]>
Signed-off-by: Hans de Goede <[email protected]>
Reviewed-by: Emil Velikov <[email protected]>
Cc: [email protected]
(cherry picked from commit 84f764a7591715104b28c035c837ce9fd86157ad)
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=968f0c657439131e8c0e3158e53f1f409618f999
Author: Pohjolainen, Topi <[email protected]>
Date: Wed May 3 12:22:50 2017 +0300
intel/isl/gen7: Use stencil vertical alignment of 8 instead of 4
The reasoning Chad gave in the comment for choosing a valign of 4 is
entirely bunk. The fact that you have to multiply pitch by 2 is
completely unrelated to the halign/valign parameters used for texture
layout. (Not completely unrelated. W-tiling is just Y-tiling with a
bit of extra swizzling which turns 8x8 W-tiled chunks into 16x4 y-tiled
chunks so it makes everything easier if miplevels are always aligned to
8x8.) The fact that RENDER_SURFACE_STATE::SurfaceVerticalAlignmet
doesn't have a VALIGN_8 option doesn't matter since this is gen7 and you
can't do stencil texturing anyway.
v2 (Jason Ekstrand):
- Delete most of Chad's comment and add a more descriptive commit
message.
Signed-off-by: Topi Pohjolainen <[email protected]>
Cc: "17.0 17.1" <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Reviewed-by: Chad Versace <[email protected]>
(cherry picked from commit 236f17a9f73935db6cddafd91e53a5fae34aae6e)
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=cebba270fa6d6d9099c1074ccfd777c4132bee06
Author: Lucas Stach <[email protected]>
Date: Wed May 10 18:01:04 2017 +0200
etnaviv: stop oversizing buffer resources
PIPE_BUFFER is a target enum, not a binding. This caused the driver to
up-align the height of buffer resources, leading to largely oversizing
those resources. This is especially bad, as the buffer resources used
by the upload manager are already 1MB in size. Height alignment meant
that those would result in 4 to 8MB big BOs.
Fixes: c9e8b49b885 ("etnaviv: gallium driver for Vivante GPUs")
Cc: [email protected]
Signed-off-by: Lucas Stach <[email protected]>
Reviewed-By: Wladimir J. van der Laan <[email protected]>
Reviewed-by: Christian Gmeiner <[email protected]>
(cherry picked from commit 8173d7d9e8b40cc9415811ad13924daa04a73646)
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=cb8a159e22ee550ebcdb50b13d9e9b77c47810b0
Author: Eric Anholt <[email protected]>
Date: Tue May 9 11:24:21 2017 -0700
renderonly: Initialize fields of struct winsys_handle.
vc4 was rejecting renderonly's import, because the offset field was
nonzero.
Fixes: 848b49b288f ("gallium: add renderonly library")
Cc: [email protected]
Signed-off-by: Eric Anholt <[email protected]>
Reviewed-by: Christian Gmeiner <[email protected]>
(cherry picked from commit c98f03c6ebaca82c265b2f3242aed5c6a3c5dcd8)
_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit