| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Clearing can happen at a time when various state objects are incoherent
and not ready for a draw. Some of the validation functions don't handle
this well, so only flush the framebuffer state. This has the advantage
of also not doing extra work.
This works around some crashes that can happen when clearing.
Signed-off-by: Ilia Mirkin <[email protected]>
Reviewed-by: Tobias Klausmann <[email protected]>
(cherry picked from commit aba3392541f38f82e3ebde251fdcca78e90adbf3)
|
|
|
|
|
|
|
|
| |
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89131
Cc: 10.6 10.5 <[email protected]>
Reviewed-by: Brian Paul <[email protected]>
(cherry picked from commit 25e9ae2b79f32631e7255807a242e5fc4e39984c)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Starting with GEN8, there is documentation that the multisample state command
must be emitted before the 3DSTATE_WM_HZ_OP command any time the multisample
count changes. The 3DSTATE_WM_HZ_OP packet gets emitted as a result of a
intel_hix_exec(), which is called upon a fast clear and/or a resolve. This can
happen before the state atoms are checked, and so the multisample state must be
put directly in the function.
v1:
- In v0, I was always emitting the command, but Ken came up with the condition to
determine whether or not the sample count actually changed.
- Ken's recommendation was to set brw->num_multisamples after emitting
3DSTATE_MULTISAMPLE. This doesn't work. I put my best guess as to why in the XXX
(it was causing 7 regressions on BDW).
v2:
Flag NEW_MULTISAMPLE state. As Ken found, in state upload we check for the
multisample change to determine whether or not to emit certain packets. Since
the hiz code doesn't actually care about the number of multisamples, set the
flag and let the later code take care of it.
Jenkins results:
http://otc-mesa-ci.jf.intel.com/view/dev/job/bwidawsk/136/
Fixes around 200 piglit tests on SKL. I'm somewhat surprised that it seems to
have no impact on BDW as the restriction is needed there as well.
Cc: "10.5 10.6" <[email protected]>
Signed-off-by: Ben Widawsky <[email protected]>
Reviewed-by: Neil Roberts <[email protected]> (v0)
Reviewed-by: Kenneth Graunke <[email protected]> (v2)
(cherry picked from commit e2d84d99f5a66738e8f584bdfea66182f36fe46c)
|
|
|
|
|
|
|
|
|
|
| |
The problem is that the EDGEFLAG has to be toggled at vertex submission
time. This can be done from either the draw or the regular paths. Avoid
falling back to draw just because there's an edgeflag.
Signed-off-by: Ilia Mirkin <[email protected]>
Cc: "10.5 10.6" <[email protected]>
(cherry picked from commit 3ec18152858fd9aadb398d78d5ad2d2b938507c1)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit 8acaf862dfe switched things over to use TEXCOORD instead of
GENERIC, but did not update the nv30 swtnl draw paths. This teaches the
draw logic about TEXCOORD.
Among other things, this fixes a crash in demos/arbocclude when using
swtnl. Curiously enough, the point-sprite piglit works without this.
Signed-off-by: Ilia Mirkin <[email protected]>
Cc: "10.5 10.6" <[email protected]>
(cherry picked from commit 25be70462dbb7ee994e69ffccc3de94e4114e667)
|
|
|
|
|
|
|
|
|
|
|
| |
These are only used once per draw, so it makes sense to keep them in
GART. Also take this opportunity to modernize the buffer mapping API
usage.
Signed-off-by: Ilia Mirkin <[email protected]>
Reviewed-by: Ben Skeggs <[email protected]>
Cc: "10.5 10.6" <[email protected]>
(cherry picked from commit c3d36a2e1a87a4aded662db7a5d320ee7ac3a8b5)
|
|
|
|
|
|
|
|
|
|
| |
Instead of always having it in the data, let the bo placement decide it.
This fixes glxgears with swtnl forced on.
Signed-off-by: Ilia Mirkin <[email protected]>
Reviewed-by: Ben Skeggs <[email protected]>
Cc: "10.5 10.6" <[email protected]>
(cherry picked from commit fdad7dfbdae07b9273fc8f57e63258dbe542c9b5)
|
|
|
|
|
|
|
|
| |
The map = assignment was missing.
Signed-off-by: Ilia Mirkin <[email protected]>
Cc: "10.5 10.6" <[email protected]>
(cherry picked from commit 3600439897c79d37c3c654546867ddfa0c420743)
|
|
|
|
|
|
|
|
|
|
|
| |
This makes piglit mixing-clip-distance-and-clip-vertex-disallowed have 0
definitely lost blocks with valgrind. (Same non-0 number of possibly
lost blocks though.)
Signed-off-by: Ilia Mirkin <[email protected]>
Reviewed-by: Tobias Klausmann <[email protected]>
Cc: "10.5 10.6" <[email protected]>
(cherry picked from commit 5646f0f18a620292524eebcd77353ff3d3687eb2)
|
|
|
|
|
|
|
| |
Signed-off-by: Ilia Mirkin <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Cc: "10.5 10.6" <[email protected]>
(cherry picked from commit bb973723a5e1f27817b6be2c2fa4fb3ea28e733c)
|
|
|
|
|
|
|
|
|
| |
This fixes glxgears with NV30_SWTNL=1 forced on. Probably fixes a bunch
of other situations where we fall back to the swtnl path.
Signed-off-by: Ilia Mirkin <[email protected]>
Cc: "10.5 10.6" <[email protected]>
(cherry picked from commit 147816375d22a653176ab28ed650fa811ceea83f)
|
|
|
|
|
|
| |
Signed-off-by: Ilia Mirkin <[email protected]>
Cc: "10.5 10.6" <[email protected]>
(cherry picked from commit 89585edf3c01c94b62d163adf0209568efa68568)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
nv30_validate_clip depends on the rasterizer state. Also we should
upload all the new clip planes on change since next time the plane data
won't have changed, but the enables might.
This fixes fixed-clip-enables and vs-clip-vertex-enables shader tests.
Signed-off-by: Ilia Mirkin <[email protected]>
Reviewed-by: Tobias Klausmann <[email protected]>
Cc: "10.5 10.6" <[email protected]>
(cherry picked from commit 7518fc3c66e9b5703b987bccca7970a344deadfa)
|
|
|
|
|
|
| |
Signed-off-by: Ilia Mirkin <[email protected]>
Cc: "10.5 10.6" <[email protected]>
(cherry picked from commit 9870ed05dd333a20662479b9b1e3a8db542924c4)
|
|
|
|
|
|
| |
Signed-off-by: Ilia Mirkin <[email protected]>
Cc: "10.5 10.6" <[email protected]>
(cherry picked from commit 605ce36d7f4a90c4062d6940bea82ab483bbe3b2)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There can be scenarios where the "indirect" arg of a PFETCH becomes
known, and so the code will attempt to propagate it. Use this
opportunity to just fold it into the first argument, and prevent the
load propagation pass from touching PFETCH further.
This fixes gs-input-array-vec4-index-rd.shader_test and
vs-output-array-vec4-index-wr-before-gs.shader_test on nvc0 at least.
Signed-off-by: Ilia Mirkin <[email protected]>
Reviewed-by: Tobias Klausmann <[email protected]>
Cc: "10.5 10.6" <[email protected]>
(cherry picked from commit fa7f9f123b70f313d3c073b52c9c16b4b8df28f8)
|
|
|
|
|
|
|
|
|
| |
The 1024 is already reported everywhere, not sure where this 0x1ff came
from.
Signed-off-by: Ilia Mirkin <[email protected]>
Cc: "10.5 10.6" <[email protected]>
(cherry picked from commit 921917c8d8e707dd854e7be05fba7a3e55bc71bf)
|
|
|
|
|
|
|
|
|
| |
We build the entire message in the generator so all the MRF writes are
implied.
Cc: "10.5 10.6" <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
(cherry picked from commit 6ca67f62e885f0e42c0cef2db5c0ae837adfe646)
|
|
|
|
|
|
|
|
|
|
|
| |
We forgot to convert to VFETCH in case of indirect access. Fix that.
This avoids crashes on the new gs-input-array-vec4-index-rd and
vs-output-array-vec4-index-wr-before-gs but they still fail.
Signed-off-by: Ilia Mirkin <[email protected]>
Cc: "10.5 10.6" <[email protected]>
(cherry picked from commit 217301843aea0299ab245e260b20af7ad250e9d8)
|
|
|
|
|
|
|
|
|
| |
When we get something like IN[ADDR[0].x+5], we will now guess that we
should look at IN[5] for the "base" information.
Signed-off-by: Ilia Mirkin <[email protected]>
Cc: "10.5 10.6" <[email protected]>
(cherry picked from commit 0bab3962f5f313ea829c95920c02f32afb23715d)
|
|
|
|
|
|
|
|
|
| |
In the case of a compare, the destination might be a predicate, but we
still want to flush denorms.
Signed-off-by: Ilia Mirkin <[email protected]>
Cc: "10.5 10.6" <[email protected]>
(cherry picked from commit d1eea18a595a468dbc2267a8d14197a3b1a5a4b6)
|
|
|
|
|
|
|
|
|
| |
Gallium equivalent of commit 06ff751f97f(darwin: Fix install name of
libOSMesa)
Cc: "10.5 10.6" <[email protected]>
Signed-off-by: Emil Velikov <[email protected]>
(cherry picked from commit 36438f0db6c7c696df73ced12684f4df9d2b47e5)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Passing -module to glibtool causes the resulting library to be called
libSomething.so rather than libSomething.dylib on darwin.
Regardless if libOSMesa is a library or a module, it has been used as
the former for quite some time. Update the build to reflect that and
resolve the naming issue.
Cc: "10.5 10.6" <[email protected]>
Signed-off-by: Jeremy Huddleston Sequoia <[email protected]>
[Emil Velikov: Tweak the commit message.]
Reviewed-by: Emil Velikov <[email protected]>
(cherry picked from commit 06ff751f97fbeb62a23936cd8f9c54733920d082)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes regression from commit 64b1dc44495890cbc2c7c5509cb830264020998c
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90147
Signed-off-by: Jeremy Huddleston Sequoia <[email protected]>
Reviewed-by: Brian Paul <[email protected]>
CC: Emil Velikov <[email protected]>
CC: [email protected]
CC: [email protected]
(cherry picked from commit 5b2d3480f57168d50ad24cf0b8c9244414bd3701)
Nominated-by: Emil Velikov <[email protected]>
Squashed with commit
swrast: Build fix for Solaris
Fixes regression from commit 5b2d3480f57168d50ad24cf0b8c9244414bd3701
Cc: "10.5 10.6" <[email protected]>
Signed-off-by: Alan Coopersmith <[email protected]>
Reviewed-by: Jeremy Huddleston Sequoia <[email protected]>
(cherry picked from commit 31cd2d75dc3844e40143f649fe383de17c152a13)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The extension requires that the address of the core functions should be
available via eglGetProcAddress. Currently the list is guarded by
_EGL_GET_CORE_ADDRESSES, which was only set for the scons (windows)
build.
Unconditionally enable it for all the builds (automake, android and
haiku) considering that the extension is not platform specific and is
always enabled.
v2: Drop the _EGL_GET_CORE_ADDRESSES macro altogether.
Cc: [email protected]
Signed-off-by: Emil Velikov <[email protected]>
(cherry picked from commit 448e01b2918c76dfff8abfbd56a606fdff8c356c)
Conflicts:
src/egl/main/eglapi.c
|
|
|
|
|
|
|
|
|
|
| |
This was causing corruption with hw binning on a306. Unlikely that it
is a306 specific, but rather the smaller gmem size resulted in different
tile configuration which was triggering the bug at certain resolutions.
Signed-off-by: Rob Clark <[email protected]>
Cc: "10.4" and "10.5" and "10.6" <[email protected]>
(cherry picked from commit 4925c35660b777ae6b33a1f87a2f74f3436c7c41)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Whitelist adreno 306 (as found in msm8916/apq8016). Works pretty much
out of the box, although the smaller GMEM size requires more tiles to
fit 1920x1080, so bump up the max # of tiles as well.
Since it is just whitelist + trivial change, it makes sense to land on
all the active release branches.
Note that a305c ends up with gpu-id "306", hence a306 ends up with
gpu-id of "307". Apparently that is what happens when you let the
marketing dept name things.
Cc: "10.4" and "10.5" and "10.6" <[email protected]>
Signed-off-by: Rob Clark <[email protected]>
(cherry picked from commit fcc7d6323bbea489219225f467d59192d538e95f)
|
|
|
|
|
|
|
|
| |
Signed-off-by: Fredrik Höglund <[email protected]>
Reviewed-by: Fredrik Höglund <[email protected]>
Reviewed-by: Adam Jackson <[email protected]>
Cc: "10.4 10.5" <[email protected]>
(cherry picked from commit b4368ac09db75cea412121ada6c12af1414feb50)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
gl*FramebufferTexture should generate GL_INVALID_VALUE when the
texture doesn't exist.
[Fredrik: Split this change out from the next commit]
Signed-off-by: Fredrik Höglund <[email protected]>
Reviewed-by: Fredrik Höglund <[email protected]>
Reviewed-by: Adam Jackson <[email protected]>
Cc: "10.4 10.5" <[email protected]>
(cherry picked from commit 69bdc9dcb8e5d3648e8d96029d5988b8971de8dc)
|
|
|
|
|
|
|
| |
Signed-off-by: Fredrik Höglund <[email protected]>
Reviewed-by: Adam Jackson <[email protected]>
Cc: "10.4 10.5" <[email protected]>
(cherry picked from commit 8ba7ad8abc7d71131e17970203c991ccb1befbe6)
|
|
|
|
|
|
|
|
|
| |
Generate GL_INVALID_OPERATION if the texture hasn't been created.
Signed-off-by: Fredrik Höglund <[email protected]>
Reviewed-by: Adam Jackson <[email protected]>
Cc: "10.4 10.5" <[email protected]>
(cherry picked from commit f9f5c822845698482d0d81eaa64bc13c2fd8852a)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This problem can easily be reproduced with a number of
ARB_shader_image_load_store piglit tests, which use a buffer object as
PBO for a pixel transfer operation and later on bind the same buffer
to the pipeline as shader image -- The problem is not exclusive to
images though, and is likely to affect other kinds of buffer objects
that can be bound to the 3D pipeline, including vertex, index,
uniform, atomic counter buffers, etc.
CC: 10.5 <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Reviewed-by: Anuj Phogat <[email protected]>
(cherry picked from commit d247615e0d67a7c8eaeea3fece837229c8c9658c)
|
|
|
|
|
|
|
|
|
|
|
| |
This aligns it to work similarly to nv50. However there's no library
code there, so the whole thing can be freed. Here we end up with an
allocated node that's not attached to a specific program.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=86792
Signed-off-by: Ilia Mirkin <[email protected]>
Cc: [email protected]
(cherry picked from commit d06ce2f1df54edd234b1abde37bba524ed599acb)
|
|
|
|
|
|
|
|
| |
event.
Tested-by: Tom Stellard <[email protected]>
CC: 10.5 <[email protected]>
(cherry picked from commit a533d4edf1ea346dd9e343c71b2cd500fa550ef8)
|
|
|
|
|
|
| |
Tested-by: Tom Stellard <[email protected]>
CC: 10.5 <[email protected]>
(cherry picked from commit 4022a468b2976c65e0d2afe9c9ac5804729e8641)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
reentrancy issues.
Refactor ::trigger and ::abort to split out the operations that access
concurrently modified data members and require locking from the
recursive and possibly re-entrant part of these methods. This will
avoid some deadlock situations when locking is implemented.
Tested-by: Tom Stellard <[email protected]>
CC: 10.5 <[email protected]>
(cherry picked from commit 2232b929fd9ca6f00c8dab9dc45c386986be922d)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
i2b has to work for all integers, not just 1. INEG would not necessarily
result with all bits set, which is something that other operations can
rely on by e.g. using AND (or INEG for b2i).
Signed-off-by: Ilia Mirkin <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
Reviewed-by: Roland Scheidegger <[email protected]>
Cc: [email protected]
(cherry picked from commit 2b5355c8ab383d86bb6332dd29c417a6a1bc52bd)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It was possible for some events never to get triggered if one thread
was creating events and another threads was waiting for them.
This patch consolidates soft_event::wait() and hard_event::wait()
into event::wait() so that hard_event objects will now wait for
all their dependencies to be submitted before flushing the command
queue.
v2:
- Rename variables
- Use mutable varibales so we can keep event::wait() const
- Open code signalled() call so mutex can be atted to signalled
without deadlocking.
CC: 10.5 <[email protected]>
Reviewed-by: Francisco Jerez <[email protected]>
(cherry picked from commit 9c4dc98b298c74015f2a7c21571bccf0a5b6cc98)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes a potential crash where on a sequence like this:
Thread 0: Check if queue is not empty.
Thread 1: Remove item from queue, making it empty.
Thread 0: Do something assuming queue is not empty.
CC: 10.5 <[email protected]>
Reviewed-by: Francisco Jerez <[email protected]>
(cherry picked from commit f546902d9597429713c83e2caf6b69856bd7ba4d)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Checks blitImage is implemented.
Initially having the __DRIimageExtension extension
at version 9 at least meant blitImage was supported.
However some implementation do advertise version >= 9
without implementing it.
CC: 10.5 <[email protected]>
Reviewed-by: Dave Airlie <[email protected]>
Reviewed-by: Daniel Stone <[email protected]>
Signed-off-by: Axel Davy <[email protected]>
(cherry picked from commit c4ff6d00cd7dde4646ff96733f68d3ddbf540c2c)
|
|
|
|
|
|
|
|
|
|
|
|
| |
the wl_registry and the wl_queue allocated weren't destroyed.
CC: 10.5 <[email protected]>
Reviewed-by: Dave Airlie <[email protected]>
Reviewed-by: Daniel Stone <[email protected]>
Signed-off-by: Axel Davy <[email protected]>
(cherry picked from commit 6aaf09b93b668a24b557e05195b9897e8cee8559)
|
|
|
|
|
|
|
|
|
|
|
| |
The return type for GL_VERTEX_BINDING_STRIDE is missing,
this cause glGetIntegeri_v to fail.
Signed-off-by: Marta Lofstedt <[email protected]>
Reviewed-by: Tapani Pälli <[email protected]>
Reviewed-by: Emil Velikov <[email protected]>
Cc: "10.4 10.5" <[email protected]>
(cherry picked from commit 4a8cd2799c2467b9916dd0ba672f05a394aa9b9f)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit 44673512a84 enabled support for saturating fmul. However
experimentally this does not seem to work on the older chips. Restrict
the feature to G200 (NVA0) and later.
Reported-by: Pierre Moreau <[email protected]>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90350
Signed-off-by: Ilia Mirkin <[email protected]>
Tested-by: Pierre Moreau <[email protected]>
Reviewed-by: Tobias Klausmann <[email protected]>
Cc: [email protected]
(cherry picked from commit da136dc07ddb6147d181c96f475b94f6281efd73)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since we update num_vtxelts here, we could otherwise end up with stale
instancing information in the upper bits which wouldn't otherwise get
reset. (Also we run the risk of the previous draw having set the first
element as instanced.)
This appears as one of the causes for the test pointed out in fdo#90363
to fail on nvc0.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90363
Signed-off-by: Ilia Mirkin <[email protected]>
Cc: [email protected]
(cherry picked from commit 7892210400e8f3bd14697c0a3dd56e98454a45df)
|
|
|
|
|
|
|
|
|
|
|
| |
See identical commit for nv50. Destroying the current context and then
creating a new one or switching to another existing context would cause
the "current" state to not be properly initialized, so we save it off in
the screen.
Signed-off-by: Ilia Mirkin <[email protected]>
Cc: [email protected]
(cherry picked from commit e9b1ea29bf1e8f09e83bd6358d0d2068053f09d4)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Normally this is kept in nv50_context, and on switching the active
context, the state is copied from the previous context. However when the
last context is destroyed, this is lost, and a new context might later
be created. When the currently-active context is destroyed, save its
state in the screen, and restore it when setting the current context.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90363
Reported-by: Matteo Bruni <[email protected]>
Signed-off-by: Ilia Mirkin <[email protected]>
Tested-by: Matteo Bruni <[email protected]>
Cc: [email protected]
(cherry picked from commit f617029db3f8786d94c64f1a73c42b89b6d261fa)
|
|
|
|
|
|
|
|
|
|
|
| |
The former logic would copy the saturate up to any mul with an immediate
if there was a subsequent mul with a saturate. However we only want to
do that if we collapsed 2 muls by multiplying their immediates (or were
able to put the immediate in as a post-multiplier).
Signed-off-by: Ilia Mirkin <[email protected]>
Cc: [email protected]
(cherry picked from commit c4ac09e30e2520b0ac6d403eb6c77f23e7f24f49)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Was off-by-one. llvm says inserting an element with an index higher than the
number of elements yields undefined results. Previously such inserts were
ignored but as of llvm revision 235854 the vector gets replaced with undef,
causing failures.
This fixes piglit gl-3.2-layered-rendering-gl-layer, as mentioned in
https://llvm.org/bugs/show_bug.cgi?id=23424.
Reviewed-by: Brian Paul <[email protected]>
Cc: [email protected]
(cherry picked from commit b8a1495106a8b70e9026b7798a5df2fb9737c55e)
|
|
|
|
|
|
|
|
|
| |
Switch to using VERT_BIT_GENERIC macro, as varying_vp_inputs is a
bitmask.
Reviewed-by: Ilia Mirkin <[email protected]>
Cc: [email protected]
(cherry picked from commit ce01c0af70f2475fbbb1c3ab90d43a19047abc5c)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some application, such as drm backend of weston, uses XRGB8888 config as
default. i965 doesn't provide this format, but before commit 65c8965d,
the drm platform of EGL takes ARGB8888 as XRGB8888. Now that commit
65c8965d makes EGL recognize format correctly so weston won't start
because it can't find XRGB8888. Add XRGB8888 format to i965 just as
other drivers do.
Cc: [email protected]
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89689
Signed-off-by: Boyan Ding <[email protected]>
Reviewed-by: Kristian Høgsberg <[email protected]>
(cherry picked from commit 28090b30dd6b5977de085f48c620574214b6b4ba)
|