summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* nv30: avoid doing extra work on clear and hitting unexpected statesIlia Mirkin2015-06-035-9/+11
| | | | | | | | | | | | | 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)
* st/dri: fix postprocessing crash when there's no depth bufferMarek Olšák2015-06-031-5/+4
| | | | | | | | 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)
* i965: Emit 3DSTATE_MULTISAMPLE before WM_HZ_OP (gen8+)Ben Widawsky2015-06-031-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* nv30: falling back to draw path for edgeflag does no goodIlia Mirkin2015-06-031-3/+2
| | | | | | | | | | 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)
* nv30/draw: switch varying hookup logic to know about texcoordsIlia Mirkin2015-06-031-9/+16
| | | | | | | | | | | | | 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)
* nv30/draw: allocate vertex buffers in gartIlia Mirkin2015-06-031-6/+10
| | | | | | | | | | | 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)
* nv30/draw: only use the DMA1 object (GART) if the bo is not in VRAMIlia Mirkin2015-06-031-3/+3
| | | | | | | | | | 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)
* nv30/draw: fix indexed draws with swtnl path and a resource index bufferIlia Mirkin2015-06-031-3/+3
| | | | | | | | The map = assignment was missing. Signed-off-by: Ilia Mirkin <[email protected]> Cc: "10.5 10.6" <[email protected]> (cherry picked from commit 3600439897c79d37c3c654546867ddfa0c420743)
* glsl: avoid leaking linked gl_shader when there's a late linker errorIlia Mirkin2015-06-031-2/+8
| | | | | | | | | | | 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)
* st/mesa: don't leak glsl_to_tgsi object on link failureIlia Mirkin2015-06-031-0/+1
| | | | | | | 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)
* nv30/draw: draw expects constbuf size in bytes, not vec4 unitsIlia Mirkin2015-06-031-1/+1
| | | | | | | | | 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)
* nv30/draw: avoid leaving stale pointers in draw stateIlia Mirkin2015-06-031-4/+4
| | | | | | Signed-off-by: Ilia Mirkin <[email protected]> Cc: "10.5 10.6" <[email protected]> (cherry picked from commit 89585edf3c01c94b62d163adf0209568efa68568)
* nv30: fix clip plane uploads and enable changesIlia Mirkin2015-06-031-9/+7
| | | | | | | | | | | | | 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)
* nv30: avoid leaking render state and draw shadersIlia Mirkin2015-06-033-0/+16
| | | | | | Signed-off-by: Ilia Mirkin <[email protected]> Cc: "10.5 10.6" <[email protected]> (cherry picked from commit 9870ed05dd333a20662479b9b1e3a8db542924c4)
* nv30: don't leak fragprog constsIlia Mirkin2015-06-031-0/+1
| | | | | | Signed-off-by: Ilia Mirkin <[email protected]> Cc: "10.5 10.6" <[email protected]> (cherry picked from commit 605ce36d7f4a90c4062d6940bea82ab483bbe3b2)
* nv50/ir: avoid messing up arg1 of PFETCHIlia Mirkin2015-06-031-2/+18
| | | | | | | | | | | | | | | 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)
* nvc0: a geometry shader can have up to 1024 vertices outputIlia Mirkin2015-06-031-1/+1
| | | | | | | | | 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)
* i965/fs: Fix implied_mrf_writes for scratch writesJason Ekstrand2015-06-031-1/+1
| | | | | | | | | 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)
* nvc0/ir: LOAD's can't be used for shader inputsIlia Mirkin2015-06-032-0/+2
| | | | | | | | | | | 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)
* nv50/ir: guess that the constant offset is the starting slot of arrayIlia Mirkin2015-06-031-2/+4
| | | | | | | | | 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)
* nvc0/ir: set ftz when sources are floats, not just destinationsIlia Mirkin2015-06-031-3/+2
| | | | | | | | | 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)
* targets/osmesa: drop the -module tag from LDFLAGSEmil Velikov2015-05-201-1/+0
| | | | | | | | | 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)
* darwin: Fix install name of libOSMesaJeremy Huddleston Sequoia2015-05-201-1/+0
| | | | | | | | | | | | | | | | 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)
* swrast: Build fix for darwinJeremy Huddleston Sequoia2015-05-201-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | 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)
* egl/main: fix EGL_KHR_get_all_proc_addressesEmil Velikov2015-05-201-3/+3
| | | | | | | | | | | | | | | | | | | | 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
* freedreno: fix bug in tile/slot calculationRob Clark2015-05-201-5/+4
| | | | | | | | | | 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)
* freedreno: enable a306Rob Clark2015-05-202-1/+2
| | | | | | | | | | | | | | | | | 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)
* main: Complete error conditions for glInvalidate*Framebuffer.Laura Ekstrand2015-05-201-1/+19
| | | | | | | | 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)
* main: Fix an error generated by FramebufferTextureLaura Ekstrand2015-05-201-4/+13
| | | | | | | | | | | | | 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)
* mesa: Generate GL_INVALID_VALUE in framebuffer_texture when layer < 0Fredrik Höglund2015-05-201-0/+12
| | | | | | | 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)
* main: Require that the texture exists in framebuffer_textureFredrik Höglund2015-05-201-1/+1
| | | | | | | | | 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)
* i965: Fix PBO cache coherency issue after _mesa_meta_pbo_GetTexSubImage().Francisco Jerez2015-05-202-2/+31
| | | | | | | | | | | | | | | 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)
* nvc0: switch mechanism for shader eviction to be a while loopIlia Mirkin2015-05-201-5/+6
| | | | | | | | | | | 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)
* clover: Implement locking of the wait_count, _chain and _status members of ↵Francisco Jerez2015-05-201-0/+8
| | | | | | | | event. Tested-by: Tom Stellard <[email protected]> CC: 10.5 <[email protected]> (cherry picked from commit a533d4edf1ea346dd9e343c71b2cd500fa550ef8)
* clover: Wrap event::_status in a method to prevent unlocked access.Francisco Jerez2015-05-202-7/+12
| | | | | | Tested-by: Tom Stellard <[email protected]> CC: 10.5 <[email protected]> (cherry picked from commit 4022a468b2976c65e0d2afe9c9ac5804729e8641)
* clover: Refactor event::trigger and ::abort to prevent deadlock and ↵Francisco Jerez2015-05-202-12/+34
| | | | | | | | | | | | | 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)
* st/mesa: make sure to create a "clean" bool when doing i2bIlia Mirkin2015-05-201-1/+1
| | | | | | | | | | | | | 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)
* clover: Fix a bug with multi-threaded events v2Tom Stellard2015-05-202-3/+17
| | | | | | | | | | | | | | | | | | | | | 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)
* clover: Add a mutex to guard queue::queued_eventsTom Stellard2015-05-202-0/+4
| | | | | | | | | | | | | 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)
* glx/dri3: Add additional check for gpu offloading caseAxel Davy2015-05-201-0/+5
| | | | | | | | | | | | | | | | 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)
* egl/wayland: properly destroy wayland objectsAxel Davy2015-05-202-1/+6
| | | | | | | | | | | | 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)
* main: glGetIntegeri_v fails for GL_VERTEX_BINDING_STRIDEMarta Lofstedt2015-05-201-0/+1
| | | | | | | | | | | 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)
* nv50/ir: only enable mul saturate on G200+Ilia Mirkin2015-05-201-1/+4
| | | | | | | | | | | | | | 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)
* nvc0: reset the instanced elements state when doing blit using 3d engineIlia Mirkin2015-05-201-0/+6
| | | | | | | | | | | | | | | 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)
* nvc0: keep track of PGRAPH state in nvc0_screenIlia Mirkin2015-05-204-24/+34
| | | | | | | | | | | 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)
* nv50: keep track of PGRAPH state in nv50_screenIlia Mirkin2015-05-204-30/+36
| | | | | | | | | | | | | | | 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)
* nv50/ir: only propagate saturate up if some actual folding took placeIlia Mirkin2015-05-201-1/+2
| | | | | | | | | | | 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)
* draw: (trivial) fix out-of-bounds vector initializationRoland Scheidegger2015-05-201-1/+1
| | | | | | | | | | | | | 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)
* mesa: fix shininess check for ffvertex_prog v2Tim Rowley2015-05-201-1/+1
| | | | | | | | | 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)
* i965: Add XRGB8888 format to intel_screen_make_configsBoyan Ding2015-05-051-1/+2
| | | | | | | | | | | | | | | 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)