summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-08-23WIPvdeThierry Reding1-0/+1
2019-08-23crossThierry Reding1-0/+4
2019-08-23Revert "meson: Use dep_llvm when finding clang modules"Thierry Reding2-14/+16
This reverts commit a54bc1337b09a87d44371ddad5ef9d1b909c17f0.
2019-08-23meson: Use dep_llvm when finding clang modulesThierry Reding2-16/+14
When cross-compiling OpenCL support, clover will encode the LLVM library path so that it can add the proper directory (containing opencl-c.h) to the include path during runtime compilation of programs. In order for that to work, the LLVM library directory needs to be an absolute path in the host filesystem. However, during cross-compilation the LLVM library directory will also be used to find the clang modules to link against. But at build time the clang modules will have to be looked up in th LLVM library directory within the host sysroot, which is a cross-compilation staging area that is located in an arbitrary directory on the build filesystem. However, the library search path provided by the dep_llvm dependency contains the correct path to the clang modules at build time, so the dependency can be passed to the cc.find_library() command to properly check for the existence of the library and whether it can actually be linked to. NOTE: This depends on a patch that hasn't been merged into Meson yet. Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-08-23nouveau: Add support for VoltaThierry Reding3-0/+7
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-08-23Revert "WIP: tegra: Add video encode/decode support"Thierry Reding4-60/+9
This reverts commit 3b9c96a99ca366cb811a2333e0b2da4cbd387701.
2019-08-23Revert "WIP: tegra: Add VDE support"Thierry Reding9-1872/+5
This reverts commit 7062f7271fff1c617c328771fbcede736e6e1c17.
2019-08-23Revert "WIP"Thierry Reding8-492/+122
This reverts commit bb4aa281650434ac267157e56e842ad24e126977.
2019-08-23WIPThierry Reding8-385/+287
2019-08-23WIP: tegra: Add VDE supportThierry Reding9-6/+1872
2019-08-23WIP: tegra: Add video encode/decode supportThierry Reding4-9/+60
2019-08-23remove debug messagesThierry Reding9-986/+87
2019-08-23WIP: nouveau: Support ASTC/ETC2 formats on GM200Thierry Reding1-1/+2
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-08-23loader: Add support for USB devicesThierry Reding1-0/+5
Allow USB devices to be used as output slaves for PRIME. Note that this currently doesn't work on the X.Org server's built-in modesetting driver because it requires glamor in order to expose the necessary capabilities through RandR. It should be possible to use this in order to accelerate Wayland clients on the GPU, though it's questionable how useful that is without having a compositor that gets accelerated. Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-08-23loader: Remove gratuituous blank linesThierry Reding1-1/+0
A single blank line is enough to separate functions from each other, no need for two. Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-08-23HACK: nouveau: Add debugging outputThierry Reding6-22/+112
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-08-23HACK: tegra: Add debugging outputThierry Reding3-65/+874
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-08-23gallium: Add helper to print flush flagsThierry Reding2-0/+16
This can be useful for debugging purposes because the flush flag names are easier to read for humans than the numerical values. Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-08-23gallium: Add support for dumping framebuffer modifiersThierry Reding4-0/+140
Adds a simple helper that can be used to dump the name of a framebuffer modifier for debug purposes. Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-08-23nouveau: Support fence FDsThierry Reding6-8/+75
Implements fence FDs based on new libdrm API and the accompanying IOCTL. Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-08-23glx: Fix up glXQueryGLXPbufferSGIX on macOS.Vinson Lee1-1/+0
Fix this build error on macOS. ../src/glx/apple/glx_empty.c:158:4: error: void function 'glXQueryGLXPbufferSGIX' should not return a value [-Wreturn-type] return 0; ^ ~ Fixes: 3dd299c3d5b8 ("glx: Sync <GL/glxext.h> with Khronos") Signed-off-by: Vinson Lee <vlee@freedesktop.org> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Adam Jackson <ajax@redhat.com>
2019-08-23docs: update calendar, add news item and link release notes for 19.1.5Juan A. Suarez Romero3-7/+8
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
2019-08-23docs: add sha256 checksums for 19.1.5Juan A. Suarez Romero1-1/+1
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com> (cherry picked from commit ae2a676cd1748c850f579863003c92f2b137f44a)
2019-08-23docs: add release notes for 19.1.5Juan A. Suarez Romero1-0/+119
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com> (cherry picked from commit a384fe0cebf1fcd6671c51c749fcc981e01b5505)
2019-08-23radeonsi/nir: Rewrite output scanningConnor Abbott1-126/+150
Similarly to before, this didn't properly handle varying structs with doubles in them. This doesn't fix any tests, but was noticed while looking at the code. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2019-08-23radeonsi/nir: Rewrite store intrinsic gatheringConnor Abbott1-59/+84
The old version wasn't as accurate as it could be, and didn't handle double variables inside structs correctly. Walk the path to compute the actual components affected. In combination with the previous commit fixes KHR-GL45.enhanced_layouts.varying_structure_locations. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2019-08-23radeonsi/nir: Add const_index when loading GS inputsConnor Abbott1-1/+1
This fixes loading GS inputs in structures or arrays. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2019-08-23radeonsi/nir: Don't add const offset to indirectConnor Abbott1-19/+6
This is already done in get_deref_offset() in the common code. We were adding it twice accidentally. Fixes KHR-GL45.enhanced_layouts.varying_array_locations. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2019-08-23ac/nir: Assert GS input index is constantConnor Abbott1-0/+1
If it's not we silently ignore indir_index which is definitely a bug. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2019-08-23ac/nir: Handle const array offsets in get_deref_offset()Connor Abbott1-6/+11
Some users of this function (e.g. GS inputs) currently only work with constant offsets. We got lucky since all the tests used an array index of 0, so the non-constant part was always 0. But we still need to handle this. This doesn't fix any CTS test, but was noticed while debugging one. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2019-08-23radeonsi/nir: Don't recompute num_inputs and num_outputsConnor Abbott1-24/+3
Don't repeat what mesa/st already does. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2019-08-23st/nir: Fix num_inputs for VS inputsConnor Abbott1-3/+2
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2019-08-23radv/gfx10: do not use NGG with NAVI14Samuel Pitoiset1-0/+1
Cc: 19.2 <mesa-stable@lists.freedesktop.org> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2019-08-23radv/gfx10: don't initialize VGT_INSTANCE_STEP_RATE_0Samuel Pitoiset1-1/+2
Only gfx9 and older use it to get InstanceID in VGPR1. Ported from RadeonSI. Cc: 19.2 <mesa-stable@lists.freedesktop.org> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2019-08-23gitlab-ci: bump LLVM to 8 for meson-vulkan and meson-cloverSamuel Pitoiset1-2/+3
To fix pipeline builds. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
2019-08-23ac,radv,radeonsi: remove LLVM 7 supportSamuel Pitoiset14-321/+66
Now that LLVM 9 will be released soon, we will only support LLVM 8, 9 and master (10). Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2019-08-23egl: reset blob cache set/get functions on terminateTapani Pälli1-0/+4
Fixes errors seen with eglSetBlobCacheFuncsANDROID on Android when running dEQP that terminates and reinitializes a display. Fixes: 6f5b57093b3 "egl: add support for EGL_ANDROID_blob_cache" Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
2019-08-22iris: Avoid unnecessary resolves on transfer mapsKenneth Graunke2-16/+31
We were always resolving the buffer as if we were accessing it via CPU maps, which don't understand any auxiliary surfaces. But we often copy to a temporary using BLORP, which understands compression just fine. So we can avoid the resolve, and accelerate the copy as well. Fixes: 9d1334d2a0f ("iris: Use copy_region and staging resources to avoid transfer stalls") Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
2019-08-22iris: Drop copy format hacks from copy region based transfer path.Kenneth Graunke1-16/+5
This doesn't work for compressed formats, as the source texture and temporary texture would have different block sizes. (Forcing the driver to always take the GPU path would expose the bug.) Instead, just use the source format for the temporary, and let blorp_copy deal with overrides. The one case where we can't do this is ASTC, because isl won't let us create a linear ASTC surface. Fall back to the CPU paths there for now. Fixes: 9d1334d2a0f ("iris: Use copy_region and staging resources to avoid transfer stalls") Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
2019-08-22iris: Update fast clear colors on Gen9 with direct immediate writes.Kenneth Graunke2-9/+26
Gen11 stores the fast clear color in an "indirect clear buffer", as a packed pixel value. Gen9 hardware stores it as a float or integer value, which is interpreted via the format. We were trying to store that in a buffer, for similarity with Icelake, and MI_COPY_MEM_MEM it from there to the actual SURFACE_STATE bytes where it's stored. This unfortunately doesn't work for blorp_copy(), which does bit-for-bit copies, and overrides the format to a CCS-compatible UINT format. This causes the clear color to be interpreted in the overridden format. Normally, we provide the clear color on the CPU, and blorp_blit.c:2611 converts it to a packed pixel value in the original format, then unpacks it in the overridden format, so the clear color we use expands to the bits we originally desired. However, BLORP doesn't support this pack/unpack with an indirect clear buffer, as it would need to do the math on the GPU. On Gen11+, it isn't necessary, as the hardware does the right thing. This patch changes Gen9 to stop using an indirect clear buffer and simply do PIPE_CONTROLs with post-sync write immediate operations to store the new color over the surface states for regular drawing. BLORP continues streaming out surface states, and handles fast clear colors on the CPU. Fixes: 53c484ba8ac ("iris: blorp using resolve hooks") Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
2019-08-22iris: Fix broken aux.possible/sampler_usages bitmask handlingKenneth Graunke1-5/+6
For renderable surfaces, we allocate SURFACE_STATEs for each bit in res->aux.possible_usages. Sampler views use res->aux.sampler_usages. When pinning buffers, we call surf_state_offset_for_aux() to calculate the offset to the desired surface state. surf_state_offset_for_aux() took an aux_modes parameter, which should be one of those two fields. However...it was not using that parameter. It always used the broader res->aux.possible_usages field directly. One of the callers, update_clear_value(), was passing incorrect masks for this parameter. It iterated through the bits in order, using u_bit_scan(), which destructively modifies the mask. So each time we called it, the count of bits before our selected mode was 0, which would cause us to always update the SURFACE_STATE for ISL_AUX_USAGE_NONE, rather than updating each in turn. This was hidden by the earlier bug where surf_state_offset_for_aux() ignored the parameter. Fixes: 7339660e803 ("iris: Add aux.sampler_usages.") Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
2019-08-22iris: Replace devinfo->gen with GEN_GENKenneth Graunke1-22/+18
This is genxml, we can compile out this code. Fixes: 26606672847 ("iris/gen8: Re-emit the SURFACE_STATE if the clear color changed.") Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
2019-08-22pan/midgard: Fix writeout combiningAlyssa Rosenzweig1-1/+4
shader-db regression in the scheduler. Fixes: dff4986b1aa ("pan/midgard: Emit store_output branch just-in-time") total bundles in shared programs: 2055 -> 2019 (-1.75%) bundles in affected programs: 1055 -> 1019 (-3.41%) helped: 36 HURT: 0 helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1 helped stats (rel) min: 0.35% max: 20.00% x̄: 6.71% x̃: 5.16% 95% mean confidence interval for bundles value: -1.00 -1.00 95% mean confidence interval for bundles %-change: -8.45% -4.97% Bundles are helped. total quadwords in shared programs: 3444 -> 3408 (-1.05%) quadwords in affected programs: 1897 -> 1861 (-1.90%) helped: 36 HURT: 0 helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1 helped stats (rel) min: 0.19% max: 14.29% x̄: 3.97% x̃: 2.99% 95% mean confidence interval for quadwords value: -1.00 -1.00 95% mean confidence interval for quadwords %-change: -5.08% -2.86% Quadwords are helped. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2019-08-22panfrost: Implement gl_FragCoord correctlyAlyssa Rosenzweig5-25/+32
Rather than passing through the transformed gl_Position, we can use the hardware-level varying for this, which will correctly handle gl_FragCoord.w Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2019-08-22panfrost: Remove vertex buffer offset from its sizeAlyssa Rosenzweig1-2/+5
The offset is added to the base address, so we need to subtract it from the size to maintain the same end address and thus prevent a buffer overflow: end_address = start_address + size start_address' = start_address + offset size' = size - offset end_address' = start_address' + size' = (start_address + offset) + (size - offset) = (start_address + size) + (offset - offset) = start_address + size = end_address QED. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2019-08-22pan/decode: Handle special varyingsAlyssa Rosenzweig1-5/+41
We need a special path for special varyings so we parse them correctly instead of throwing an error when they inevitably point to bad memory. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2019-08-22pan/decode: Remove size/stride divisibility checkAlyssa Rosenzweig1-7/+3
The hardware doesn't care, and a lot of Panfrost code relies on an oversized buffer. The important part is that (stride * padded_num_vertices) is no greater than size, which we'll need to check once we validate instancing. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2019-08-22pan/decode: Decouple attribute/meta printingAlyssa Rosenzweig1-4/+8
They are independent fields, so the parser should reflect that. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2019-08-22pan/decode: Print stub for uniformsAlyssa Rosenzweig1-1/+11
We don't need to dump the contents necessary, but having the stub with the address is useful. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2019-08-22pan/decode: Decode actual varying_meta addressAlyssa Rosenzweig1-1/+1
I don't know who thought this mask was a good idea but unfortunately it must have been me. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>