summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* winsys/radeon: Use dup fd as key in drm-winsys hash table to fix ZaphodHeads.Mario Kleiner2015-07-041-3/+10
| | | | | | | | | | | | | | | Same problem and fix as for nouveau's ZaphodHeads trouble. See patch ... "nouveau: Use dup fd as key in drm-winsys hash table to fix ZaphodHeads." ... for reference. Cc: "10.3 10.4 10.5 10.6" <[email protected]> Signed-off-by: Mario Kleiner <[email protected]> Reviewed-by: Marek Olšák <[email protected]> (cherry picked from commit 28dda47ae4d974e3e032d60e8e0965c8c068c6d8)
* i965/skl: Use 1 register for uniform pull constant payloadBen Widawsky2015-07-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | When under dispatch_width=16 the previous code would allocate 2 registers for the payload when only one is needed. This manifested itself through bugs on SKL which needs to mess with this instruction. Ken thought this might impact shader-db, but apparently it doesn't Backported to 10.5.8 from (upstream uses alloc.allocate()): commit 6e62a52865787362ae1deb9dee80140d3a66c519 Author: Ben Widawsky <[email protected]> Date: Thu Feb 19 15:49:34 2015 -0800 i965/skl: Use 1 register for uniform pull constant payload Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89118 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88999 Signed-off-by: Ben Widawsky <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Tested-by: Timo Aaltonen <[email protected]> Cc: "10.5" <[email protected]>
* nv50/ir: copy joinAt when splitting both before and afterIlia Mirkin2015-07-013-0/+5
| | | | | | | | | | | | | | | | | | | | | | The current implementation only moves the joinAt when splitting after the given instruction, not before it. So if you have a BB with foo instr bar joinat and thus with joinAt set, we end up first splitting before instr, at which point the instr's bb is updated to the new bb. Since that bb doesn't have a joinAt set (despite containing one), when splitting after the instr, there is nothing to copy over. Since the joinat will be in the "split" bb irrespective of whether we're splitting before or after the instruction, move it over in either case. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91124 Signed-off-by: Ilia Mirkin <[email protected]> Cc: "10.5 10.6" <[email protected]> (cherry picked from commit 5dcb28c3d26828ed1b0e2bd5a0589c5baab04b85)
* glsl: validate sampler array indexing for 'constant-index-expression'Tapani Pälli2015-07-011-0/+78
| | | | | | | | | | | | | | | | | | | Desktop GLSL < 130 and GLSL ES < 300 allow sampler array indexing where index can contain a loop induction variable. This extra check will warn during linking if some of the indexes could not be turned in to constant expressions. v2: warning instead of error for backends that did not enable EmitNoIndirectSampler option (have dynamic indexing) Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Francisco Jerez <[email protected]> Cc: "10.5" and "10.6" <[email protected]> (cherry picked from commit 9350ea6979c48772e1fb55d4f1c7c5a3cfa987b0) Signed-off-by: Emil Velikov <[email protected]> Conflicts: src/glsl/linker.cpp
* i965: use EmitNoIndirectSampler for gen < 7Tapani Pälli2015-07-011-0/+4
| | | | | | | | | | | | Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Francisco Jerez <[email protected]> Cc: "10.5" and "10.6" <[email protected]> (cherry picked from commit 8852e26e93af1fc4b72bf9d57e847f53e1a1371b) [Emil Velikov: move the hunk to brw_initialize_context_constants()] Signed-off-by: Emil Velikov <[email protected]> Conflicts: src/mesa/drivers/dri/i965/brw_shader.cpp
* mesa/st: use EmitNoIndirectSampler if !ARB_gpu_shader5Tapani Pälli2015-07-011-0/+5
| | | | | | | | Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Francisco Jerez <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Cc: "10.5" and "10.6" <[email protected]> (cherry picked from commit f17c8c287f3581fccb52714fbd4b2ea09a58e3d3)
* i915: use EmitNoIndirectSamplerTapani Pälli2015-07-011-0/+3
| | | | | | | Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Francisco Jerez <[email protected]> Cc: "10.5" and "10.6" <[email protected]> (cherry picked from commit 2dc2b12ed15abb84c7e2b3c2726dcc1b735abcda)
* mesa/glsl: new compiler option EmitNoIndirectSamplerTapani Pälli2015-07-012-0/+13
| | | | | | | | | | | | | | | | | Patch provides new compiler option for backend to force unroll loops that have non-constant expression indexing on sampler arrays. This makes sure that we can never end up with a shader that uses loop induction variable as sampler array index but does not unroll because of having too much instructions. This would not work without dynamic indexing support. v2: change option name as EmitNoIndirectSampler Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Francisco Jerez <[email protected]> Cc: "10.5" and "10.6" <[email protected]> (cherry picked from commit e4512e1581cf90f56d13cfa6a809832ef3517283)
* glsl: Allow dynamic sampler array indexing with GLSL ES < 3.00Tapani Pälli2015-07-011-18/+20
| | | | | | | | | | | | | | | | | | | | | | | | | Dynamic indexing of sampler arrays is prohibited by GLSL ES 3.00. Earlier versions allow 'constant-index-expression' indexing, where index can contain a loop induction variable. Patch allows dynamic indexing for sampler arrays when GLSL ES < 3.00. This change makes 'sampler-array-index.frag' parser test in Piglit pass + fishgl.com works when running Chrome on OpenGL ES 2.0 backend v2: small change and some more commit message (Tapani) v3: refactor checks to make it more readable (Ian Romanick) v4: change warning comment in GLSL ES case (Curro) Signed-off-by: Tapani Pälli <[email protected]> Signed-off-by: Kalyan Kondapally <[email protected]> Reviewed-by: Francisco Jerez <[email protected]> Cc: "10.5" and "10.6" <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=84225 (cherry picked from commit edb8383c98ee23385731d0fc23a6b6673528a8ec) Signed-off-by: Emil Velikov <[email protected]> Conflicts: src/glsl/ast_array_index.cpp
* nv50/ir: fix emission of address reg in 3rd sourceIlia Mirkin2015-07-011-2/+6
| | | | | | | Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91056 Signed-off-by: Ilia Mirkin <[email protected]> Cc: "10.5 10.6" <[email protected]> (cherry picked from commit d5f1253b0c4637ad996fd0da45095165006d61d3)
* nouveau: Use dup fd as key in drm-winsys hash table to fix ZaphodHeads.Mario Kleiner2015-07-011-1/+5
| | | | | | | | | | | | | | | | | | | The dup'ed fd owned by the nouveau_screen for a device node must also be used as key for the winsys hash table, instead of using the original fd passed in for a screen, to make multi-x-screen ZaphodHeads configurations work on nouveau. The original fd's lifetime differs from that of the nouveau_screen stored in the hash. The hash key is the fd, and in order to compare hash entries we fstat them, so the fd must be around for as long as the screen is. This is an extension of the fix in commit a59f2bb1 (nouveau: dup fd before passing it to device). Cc: "10.3 10.4 10.5 10.6" <[email protected]> Signed-off-by: Mario Kleiner <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]> (cherry picked from commit a98600b0ebdfc8481c168aae6c5670071e22fc29)
* nv50/ir: propagate modifier to right arg when const-folding madIlia Mirkin2015-07-011-1/+4
| | | | | | | | | | | An immediate has to be the second arg of an ADD operation. However we were mistakenly propagating the modifier of the non-folded value to the folded immediate argument. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91117 Signed-off-by: Ilia Mirkin <[email protected]> Cc: "10.5 10.6" <[email protected]> (cherry picked from commit ad62ec8316a926682958e7ab52639992867c3755)
* winsys/radeon: Unmap GPU VM address range when destroying BOMichel Dänzer2015-07-013-4/+29
| | | | | | | | | | | | | | | | | | | But only when doing so is safe according to the RADEON_INFO_VA_UNMAP_WORKING kernel query. This avoids kernel GPU VM address range conflicts when the BO has other references than the GEM handle being closed, e.g. when the BO is shared. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90537 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90873 Cc: "10.5 10.6" <[email protected]> Reviewed-by: Christian König <[email protected]> (cherry picked from commit 7796e8889a9a2cc1b454dc32d8da3d756404339a) Signed-off-by: Emil Velikov <[email protected]> Conflicts: src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
* egl/x11: Remove duplicate call to dri2_x11_add_configs_for_visualsBoyan Ding2015-07-011-5/+0
| | | | | | | | | | | | | | The call to dri2_x11_add_configs_for_visuals (previously dri2_add_configs_for_visuals) was moved downwards in commit f8c5b8a1, but appeared again in its original position after its rename in d019cd81. Remove it. Cc: "10.5 10.6" <[email protected]> Signed-off-by: Boyan Ding <[email protected]> Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]> Reviewed-by: Emil Velikov <[email protected]> Reviewed-by: Chad Versace <[email protected]> (cherry picked from commit 3fa9bb81ec8b21f472de32e08d0caf917239da08)
* nv50,nvc0: make sure to pushbuf_refn before putting bo into pushbuf_dataIlia Mirkin2015-07-014-0/+4
| | | | | | | | | | | | | Without first running the bo through pushbuf_refn, the nouveau drm library will have uninitialized structures regarding this bo, and will insert incorrect data. This fixes supertuxkart 0.9 crash on start (where it ends up doing a lot of indirect draws). Signed-off-by: Ilia Mirkin <[email protected]> Cc: "10.5 10.6" <[email protected]> (cherry picked from commit 78d58e642549fbf340fdb4fca06720d2891216a8)
* nvc0: always put all tfb bufs into bufctxIlia Mirkin2015-07-011-3/+4
| | | | | | | | | | | Since we clear the TFB bufctx binding point above, we need to put all of the active tfb's back in, even if they haven't changed since last time. Otherwise the tfb may get moved into sysmem and the underlying mapping will generate write errors. Signed-off-by: Ilia Mirkin <[email protected]> Cc: "10.5 10.6" <[email protected]> (cherry picked from commit 9fcbf515b431a92e0289f234ab77a796cf2a5612)
* glsl: binding point is a texture unit, which is a combined spaceIlia Mirkin2015-07-011-1/+1
| | | | | | | | | | | | | This fixes compilation failures in Dota 2 Reborn where a texture unit binding point was used that was numerically higher than the max per stage. Signed-off-by: Ilia Mirkin <[email protected]> Reviewed-by: Chris Forbes <[email protected]> Reviewed-by: Timothy Arceri <[email protected]> Tested-by: Nick Sarnie <[email protected]> Cc: "10.5 10.6" <[email protected]> (cherry picked from commit fccf012adc0d3aad877de095244324aa1d2d046a)
* gbm: do not (over)link against libglapi.soEmil Velikov2015-07-011-1/+2
| | | | | | | | | | | The whole of GBM does not rely on even a single symbol from the GL dispatch library, unsuprisingly. The only need for it comes from the unresolved symbols in the DRI modules, which are now correctly handled with Frank's commit. Cc: "10.5 10.6" <[email protected]> Signed-off-by: Emil Velikov <[email protected]> (cherry picked from commit a0dc6b7824d3b9095919e29393a379ea7f9c1318)
* gbm: dlopen libglapi so gbm_create_device worksFrank Henigman2015-07-011-0/+8
| | | | | | | | | | | | | | | Dri driver libs are not linked to pull in libglapi so gbm_create_device() fails when it tries to dlopen them (unless the application is linked with something that does pull in libglapi, like libGL). Until dri drivers can be fixed properly, dlopen libglapi before trying to dlopen them. Cc: "10.5 10.6" <[email protected]> Signed-off-by: Frank Henigman <[email protected]> [Emil Velikov: Drop misleading bugzilla link, mention that libname differs] Reviewed-by: Emil Velikov <[email protected]> (cherry picked from commit 828f13330c9384f2b55c8b0f962d93a74ecd0601)
* i965/gen9: Implement Push Constant Buffer workaroundBen Widawsky2015-07-011-7/+41
| | | | | | | | | | | | | | | | | | | | | | | | This implements a workaround (exact excerpt as a comment in the code). The docs specify [clearly, after you struggle for a while] that the offset isn't relative to state base. This actually makes sense. This fixes hangs on SKL. Buffer #0 is meant to be used for normal uniforms. Buffer #1 is typically used for gather constants when using RS. Buffer #1-#3 could be used to push a bunch of UBO data which would just be somewhere in memory, and not relative to the dynamic state. NOTE: I've moved away from the ternary operator for the new gen9 conditions. Admittedly it's probably not great to do this, but I really want to fix this all up in the subsequent patch and doing it here makes that diff a lot nicer. I want to split out the gen8/9 code to make the function a bit more readable, but to keep this easily cherry-pickable I am doing this fix first. If we decide not to merge the cleanup patch then I can revisit this. Cc: "10.5 10.6" <[email protected]> Signed-off-by: Ben Widawsky <[email protected]> Reviewed-by: Anuj Phogat <[email protected]> Tested-by: Valtteri Rantala <[email protected]> (cherry picked from commit 90754d2df05eafe1a3ee3cd9bb1611a19099fc49)
* mesa: add GL_PROGRAM_PIPELINE support in KHR_debug callsIlia Mirkin2015-07-014-12/+24
| | | | | | | | | | | This was apparently missed when ARB_sso support was added. Add label support to pipeline objects just like all the other debug-related objects. Signed-off-by: Ilia Mirkin <[email protected]> Reviewed-by: Timothy Arceri <[email protected]> Cc: "10.5 10.6" <[email protected]> (cherry picked from commit 770f141866654dab969302f720228497f0fb35fd)
* glsl: add version checks to conditionals for builtin variable enablementIlia Mirkin2015-07-011-5/+5
| | | | | | | | | | A number of builtin variables have checks based on the extension being enabled, but were missing enablement via a higher GLSL version. Signed-off-by: Ilia Mirkin <[email protected]> Reviewed-by: Timothy Arceri <[email protected]> Cc: "10.5 10.6" <[email protected]> (cherry picked from commit b6e238023c4f8af2328dc3bcab1d73a3e19f4fbb)
* i965: Export format comparison for blitting between miptreesChris Wilson2015-07-013-5/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the introduction of commit 536003c11e4cb1172c540932ce3cce06f03bf44e Author: Boyan Ding <[email protected]> Date: Wed Mar 25 19:36:54 2015 +0800 i965: Add XRGB8888 format to intel_screen_make_configs winsys buffers no longer have an alpha channel. This causes _mesa_format_matches_format_and_type() to reject previously working BGRA uploads from using the BLT fast path. Instead of using the generic routine for matching formats exactly, export the slightly more relaxed check from intel_miptree_blit() which importantly allows the blitter routine to apply a small number of format conversions. References: https://bugs.freedesktop.org/show_bug.cgi?id=90839 Signed-off-by: Chris Wilson <[email protected]> Cc: Jason Ekstrand <[email protected]> Cc: Alexander Monakov <[email protected]> Cc: Kristian Høgsberg <[email protected]> Cc: Kenneth Graunke <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Cc: [email protected] (cherry picked from commit 922c0c9fd526ce19b87bc74a3159dec7705c1de1) Signed-off-by: Emil Velikov <[email protected]> Conflicts: src/mesa/drivers/dri/i965/intel_pixel_draw.c
* i915: Blit RGBX<->RGBA drawpixelsChris Wilson2015-07-011-7/+29
| | | | | | | | | | | | | | | | | | | | | | The blitter already has code to accommodate filling in the alpha channel for BGRX destination formats, so expand this to also allow filling the alpha channgel in RGBX formats. More importantly for the next patch is moving the test into its own function for the purpose of exporting the check to the callers. v2: Fix alpha expansion as spotted by Alexander with the fix suggested by Kenneth Signed-off-by: Chris Wilson <[email protected]> Cc: Jason Ekstrand <[email protected]> Cc: Alexander Monakov <[email protected]> Cc: Kristian Høgsberg <[email protected]> Cc: Kenneth Graunke <[email protected]> Reviewed-by Kenneth Graunke <[email protected]> Cc: [email protected] (cherry picked from commit c2d0606827412b710dcaed80268fc665de8c9c5d)
* i965: Fix HW blitter pitch limitsChris Wilson2015-07-011-5/+14
| | | | | | | | | | | | | | | | The BLT pitch is specified in bytes for linear surfaces and in dwords for tiled surfaces. In both cases the programmable limit is 32,767, so adjust the check to compensate for the effect of tiling. v2: Tweak whitespace for functions (Kenneth) Signed-off-by: Chris Wilson <[email protected]> Cc: Kristian Høgsberg <[email protected]> Cc: Kenneth Graunke <[email protected]> Reviewed-by Kenneth Graunke <[email protected]> Cc: [email protected] (cherry picked from commit 8da79b8378ae87474d8c47ad955e4833edf98359)
* egl/x11: Set version of swrastLoader to 2Boyan Ding2015-06-181-1/+1
| | | | | | | | | | | which it actually implements instead of the newest version defined in dri_interface.h Cc: "10.5 10.6" <[email protected]> Signed-off-by: Boyan Ding <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Emil Velikov <[email protected]> (cherry picked from commit 997fc807b2f71ef65b4601d6db33d0f912c18d3f)
* nvc0/ir: can't have a join on a load with an indirect sourceIlia Mirkin2015-06-181-1/+1
| | | | | | | | | | | | Triggers an INVALID_OPCODE warning on GK208. Seems rare enough to not warrant verification on other chips. Fixes the new piglits: ubo_array_indexing/fs-nonuniform-control-flow.shader_test ubo_array_indexing/vs-nonuniform-control-flow.shader_test Signed-off-by: Ilia Mirkin <[email protected]> Cc: "10.5 10.6" <[email protected]> (cherry picked from commit 36e3eb6a957f8f20ed187ec88a067fc65cb81432)
* nv50,nvc0: clamp uniform size to 64kIlia Mirkin2015-06-182-4/+4
| | | | | | | | | | | The state tracker will pass through requests from buggy applications which will have the buffer size larger than the max allowed (64k). Clamp the size to 64k so that we don't get errors when uploading the constbuf data. Signed-off-by: Ilia Mirkin <[email protected]> Cc: "10.5 10.6" <[email protected]> (cherry picked from commit 8b24388647f626a5cad10fd48e61335ed26a8560)
* nvc0/ir: fix collection of first uses for texture barrier insertionIlia Mirkin2015-06-181-5/+11
| | | | | | | | | | | | | | One of the places we have to insert texbars is in situations where the result of the tex gets overwritten by a different instruction (e.g. in a conditional statement). However in some situations it can actually appear as though the original tex itself is an overwriting instruction. This can naturally never really happen, so just ignore the tex instruction when it comes up. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90347 Signed-off-by: Ilia Mirkin <[email protected]> Cc: "10.5 10.6" <[email protected]> (cherry picked from commit a2af42c1d2dc91f4c31e25ff9fff15a89a9b6ead)
* mesa: build xmlconfig to a separate static libraryErik Faye-Lund2015-06-188-17/+17
| | | | | | | | | | | | | | | | | | | | | As we use the file from both the dri modules and loader, we end up with multiple definition of the symbols provided in our gallium dri modules. Additionally we compile the file twice. Resolve both issues, effectively enabling the build on toolchains which don't support -Wl,--allow-multiple-definition. v2: [Emil Velikov] - Fix the Scons/Android build. - Resolve libgbm build issues (bring back the missing -lm) Cc: Julien Isorce <[email protected]> Cc: "10.5 10.6" <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90310 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90905 Acked-by: Matt Turner <[email protected]> Signed-off-by: Emil Velikov <[email protected]> (cherry picked from commit 634f2002563b4fca68490c0a39518ea838f28fb1)
* i965/fs: Don't let the EOT send message interfere with the MRF hackJason Ekstrand2015-06-182-3/+17
| | | | | | | | | | | | | | | | | | Previously, we just put the message for the EOT send as high in the file as it would go. This is because the register pre-filling hardware will stop all over the early registers in the file in preparation for the next thread while you're still sending the last message. However, if something happens to spill, then the MRF hack interferes with the EOT send message and, if things aren't scheduled nicely, will stomp on it. Cc: "10.5 10.6" <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90520 Reviewed-by: Neil Roberts <[email protected]> (cherry picked from commit 86e5afbfee5492235cab1a7be4ea49ac02be1644) Signed-off-by: Emil Velikov <[email protected]> Conflicts: src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
* draw: (trivial) fix NULL pointer dereferenceRoland Scheidegger2015-06-181-2/+2
| | | | | | | | | | | | This probably got broken when the samplers were converted to be indexed by shader type. Seen when looking at bug 89819 though I'm not sure if that really was what the bug was about... Cc: "10.5 10.6" <[email protected]> Reviewed-by: Brian Paul <[email protected]> (cherry picked from commit 6e5970ffee0129fb94d8b7f0ebd4fac3992e7dce)
* i965: Disable compaction for EOT send messagesBen Widawsky2015-06-181-0/+6
| | | | | | | | | | | | | | | | | | | | | | | AFAICT, there is no real way to make sure a send message with EOT is properly ignored from compact, nor can I see a way to actually encode EOT while compacting. Before the single send optimization we'd always bail because we hit the is_immediate && !is_compactable_immediate case. However, with single send, is_immediate is not true, and so we end up trying to compact the un-compactible. Without this, any compacting single send instruction will hang because the EOT isn't there. I am not sure how I didn't hit this when I originally enabled the optimization. I didn't check if some surrounding code changed. I know Neil and Matt were both looking into this. I did a quick search and didn't see any patches out there to handle this. Please ignore if this has already been sent by someone. (Direct me to it and I will review it). Reported-by: Neil Roberts <[email protected]> Reported-by: Mark Janes <[email protected]> Tested-by: Mark Janes <[email protected]> Signed-off-by: Ben Widawsky <[email protected]> Reviewed-by: Matt Turner <[email protected]> (cherry picked from commit b307921c3ff3b36607752f881a180272366a79cf)
* i965: Don't compact instructions with unmapped bits.Francisco Jerez2015-06-181-0/+53
| | | | | | | | | | | | | | | | | | Some instruction bits don't have a mapping defined to any compacted instruction field. If they're ever set and we end up compacting the instruction they will be forced to zero. Avoid using compaction in such cases. v2: Align multiple lines of an expression to the same column. Change conditional compaction of 3-source instructions to an assertion. (Matt) v3: The 3-source instruction bit 105 is part of SourceIndex on CHV. Add assertion that reserved bit 7 is not set. (Matt) Document overlap with UIP and 64-bit immediate fields. v4: Make some more unmapped bit checks assertions. (Matt) Reviewed-by: Matt Turner <[email protected]> (cherry picked from commit 35a77a148f8b7ef03fe3b31d63719e0bfdf4b783)
* egl: fix setting context flagsMarek Olšák2015-06-181-2/+3
| | | | | | | Cc: 10.6 10.5 10.4 <[email protected]> Reviewed-by: Emil Velikov <[email protected]> Reviewed-by: Chad Versace <[email protected]> (cherry picked from commit f9f894447e4e7442d5dfa489bb43f2823e2fc71d)
* 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)