summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-01-12broadcom/vc5: Add a test for .ifb in ADD ops.Eric Anholt1-0/+1
I had a .ifb being decoded weird in sampid, so this is to check that .ifb is fine.
2018-01-12broadcom/vc5: Add the new tesselation opcodes in V3D 4.1.Eric Anholt2-1/+5
2018-01-12broadcom/vc5: Use a physical-reg-only register class for LDVPM.Eric Anholt2-8/+21
This is needed for LDVPM on V3D 4.x, but will also be needed for keeping values out of the accumulators across THRSW.
2018-01-12broadcom/vc5: Use the new LDVPM/STVPM opcodes on V3D 4.1.Eric Anholt9-51/+197
Now, instead of a magic write register for VPM stores we have an instruction to do them (which means no packing of other ALU ops into it), with the ability to reorder the VPM stores due to the offset being baked into the instruction. VPM loads also gain the ability to be reordered by packing the row into the A argument. They also no longer write to the r3 accumulator, and instead must be stored to a physical register.
2018-01-12broadcom/vc5: Drop dead VC5_QPU_* defines from qpu_instr.c.Eric Anholt1-80/+0
I had all the packing code in this file at one point, but these defines now live in qpu_pack.c.
2018-01-12broadcom/vc5: Add support for QPU pack/unpack/disasm of small immediates.Eric Anholt4-1/+94
2018-01-12broadcom/vc5: Enable the driver on V3D 4.1Eric Anholt1-1/+1
2018-01-12broadcom/vc5: Port the simulator to support V3D 4.1Eric Anholt9-125/+216
This required moving the register accesses to a separate v3dx file, since the register definitions for each V3D version collide. It seems that initializing the v3d_hw from a file dictating 3.3 (v3d_simulator_wrapper.cpp) is safe, though.
2018-01-12broadcom/vc5: Drop signal bit #defines.Eric Anholt2-8/+0
Signals are more complicated than that, and tables ended up being better.
2018-01-12broadcom/vc5: Add support for V3Dv4 signal bits.Eric Anholt12-45/+322
The WRTMUC replaces the implicit uniform loads in the first two texture instructions. LDVPM disappears in favor of an ALU op. LDVARY, LDTMU, LDTLB, and LDUNIF*RF now write to arbitrary registers, which required passing the devinfo through to a few more functions.
2018-01-12broadcom/vc5: Fix pack/unpack of vfmul input unpack flags.Eric Anholt2-0/+40
2018-01-12broadcom/vc5: Port the RCL setup to V3D4.1.Eric Anholt7-58/+360
The TLB load/store path is rebuilt in this version. There is no longer a single-byte resolved store or the 3-byte extended store. Instead, you get to always use general loads/stores (which, honestly, was tempting even in previous versions).
2018-01-12broadcom/vc5: Fix per-tile extra clear packet.Eric Anholt1-1/+1
I accidentally emitted this into the RCL instead of the per-tile generic list, so we wouldn't get tiles after the first cleared.
2018-01-12broadcom/vc5: Move the TLB loads and stores to helper functions.Eric Anholt1-35/+50
This is going to get more complicated with V3D 4.1 support, which redoes all the TLB packets.
2018-01-12broadcom/vc5: Convert vc5_cl.h to use the V3DX() macros.Eric Anholt7-10/+24
To conditionally compile cl_emit() macros per V3D version, we need it to expand to whatever V3D we're building for. This required emitting #define V3D_VERSION 33 in all our currently 3.3-only code.
2018-01-12broadcom/vc5: Introduce v3dx_macros.h and v3dx_pack.h headers.Eric Anholt3-1/+88
This will be used by vc5 for prefixing functions and including the pack header in v3d-version-dependent code, following the model of anv.
2018-01-12broadcom/cle: Fix error path of missing a "type" in the XML.Eric Anholt1-1/+2
We try to emit a #error and continue so that you can debug the missing type at C compile time, but were missing a couple of definitions in that path (sigh, python).
2018-01-12broadcom/vc5: Add XML for V3D v4.1 (BCM7278)Eric Anholt3-1/+1054
2018-01-12ac: add 'const' qualifiers to the shader info passSamuel Pitoiset2-8/+11
For clarification purposes. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2018-01-12ac: remove unused ac_nir_compiler_options from gather_info_input_decl()Samuel Pitoiset1-4/+2
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2018-01-12nir: add a 'const' qualifier to nir_ssa_def_components_read()Samuel Pitoiset2-2/+2
To avoid compilation warnings and because this helper shouldn't update anything. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2018-01-12loader/dri3: Avoid freeing renderbuffers in useThomas Hellstrom1-3/+3
Upon reception of an event that lowered the number of active back buffers, the code would immediately try to free all back buffers with an id equal to or higher than the new number of active back buffers. However, that could lead to an active or to-be-active back buffer being freed, since the old number of back buffers was used when obtaining an idle back buffer for use. This lead to crashes when lowering the number of active back buffers by transitioning from page-flipping to non-page-flipping presents. Fix this by computing the number of active back buffers only when trying to obtain a new back buffer. Fixes: 15e208c4cc ("loader/dri3: Don't accidently free buffer holding new back content") Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104214 Cc: "17.3" <mesa-stable@lists.freedesktop.org> Tested-by: Andriy.Khulap <andriy.khulap@globallogic.com> Tested-by: Vadym Shovkoplias <vadym.shovkoplias@globallogic.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
2018-01-12anv: VkDescriptorSetLayoutBinding can have descriptorCount == 0Samuel Iglesias Gonsálvez1-1/+3
From Vulkan spec: "descriptorCount is the number of descriptors contained in the binding, accessed in a shader as an array. If descriptorCount is zero this binding entry is reserved and the resource must not be accessed from any stage via this binding within any pipeline using the set layout." Fixes: dEQP-VK.binding_model.descriptor_update.empty_descriptor.uniform_buffer Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Cc: mesa-stable@lists.freedesktop.org
2018-01-12mesa: require at least 14 UBOs for GL 4.3Roland Scheidegger1-0/+1
ARB_ubo requires 12 UBOs (per stage) at least, but this limit has been raised by GL 4.3 to 14, so don't advertize GL 4.3 without it (only checking the vertex stage since all drivers probably have the same limit anyway for other stages). (piglit has minmax tests for that kind of thing, but they go only up to 3.3, so this won't really be noticed.) I think this currently should not affect any driver - r600 until very recently only supported 12 but now advertizes 14 too. Reviewed-by: Brian Paul <brianp@vmware.com>
2018-01-12util: fix NORETURN for msvc, add HAVE_FUNC_ATTRIBUTE_NORETURN to c99_compat.hRoland Scheidegger2-4/+9
We've seen some problems internally due to macro redefinition. Fix this by adding HAVE_FUNC_ATTRIBUTE_NORETURN to c99_compat.h, and defining it for msvc. And avoid redefinition just in case. Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
2018-01-12radv: don't emit unneeded vertex state.Dave Airlie2-8/+49
If the number of instances hasn't changed and we've already emitted it, don't emit it again. If the vertex shader is the same and the first_instance, vertex_offset haven't changed don't emit them again. This increases the fps in GL_vs_VK -t 1 -m -api vk from around 40 to around 60 here, it may not impact anything else. Dieter also reported smoketest going from 1060->1200 fps. Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de> Signed-off-by: Dave Airlie <airlied@redhat.com>
2018-01-12radv: trim buffer load result (fixes dota2)Dave Airlie1-1/+1
Running dota2 since the below commit crashes with an llvm assert. Trim the vector like the other user. This possible could also be avoided by not padding inside the load vec3->vec4. Fixes: 41c36c4549 (amd/common: use ac_build_buffer_load() for emitting UBO loads) Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
2018-01-11meson: add variable for including include/GL/internalDylan Baker3-10/+5
Signed-off-by: <dylan.c.baker@intel.com> Acked-by: Eric Engestrom <eric.engestrom@imgtec.com>
2018-01-11meson: define inc_gbm as empty if not otherwise assignedDylan Baker1-0/+2
Otherwise this could be undefined in the egl directory. Signed-off-by: Dylan Baker <dylan.c.baker@intel.com> Acked-by: Eric Engestrom <eric.engestrom@imgtec.com>
2018-01-11meson: move libsensors dependency to libgalliumDylan Baker8-13/+7
This simplifies the build by removing the need to link targets against libsensors. Suggested-by: Emil Velikov <emil.velikov@collabora.com> Signed-off-by: Dylan Baker <dylan.c.baker@intel.com> Acked-by: Eric Engestrom <eric.engestrom@imgtec.com>
2018-01-11meson: Use dependencies for nirDylan Baker18-50/+72
This creates two new internal dependencies, idep_nir_headers and idep_nir. The former encapsulates the generation of nir_opcodes.h and nir_builder_opcodes.h and adding src/compiler/nir as an include path. This ensures that any target that needs nir headers will have the includes and that the generated headers will be generated before the target is build. The second, idep_nir, includes the first and additionally links to libnir. This is intended to make it easier to avoid race conditions in the build when using nir, since the number of consumers for libnir and it's headers are quite high. Acked-by: Eric Engestrom <eric.engestrom@imgtec.com> Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
2018-01-11meson: don't use intermediate variables that are immediately discardedDylan Baker5-14/+7
For things like: loop x = func() list += x end just do: loop list += func() end Acked-by: Eric Engestrom <eric.engestrom@imgtec.com> Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
2018-01-11meson: Use consistent style for testsDylan Baker20-151/+199
Don't use intermediate variables, use consistent whitespace. Acked-by: Eric Engestrom <eric.engestrom@imgtec.com> Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
2018-01-11meson: Use include variablesDylan Baker1-1/+1
These were added after adderlib was mesonified, but it still good to use them instead of open coding them. Acked-by: Eric Engestrom <eric.engestrom@imgtec.com> Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
2018-01-11meson: Use consistent styleDylan Baker17-85/+148
Currently the meosn build has a mix of two styles: arg : [foo, ... bar], and arg : [ foo, ..., bar, ] For consistency let's pick one. I've picked the later style, which I think is more readable, and is more common in the mesa code base. v2: - fix commit message Acked-by: Eric Engestrom <eric.engestrom@imgtec.com> Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
2018-01-11i965: Use UD types for gl_SampleID setupJason Ekstrand1-3/+3
We already had to switch all of the W types to UW to prevent issues with vector immediates on gen10. We may as well use unsigned types everywhere. Reviewed-by: Matt Turner <mattst88@gmail.com>
2018-01-11i965/fs: Use UW types when using V immediatesJason Ekstrand2-5/+5
Gen 10 has a strange hardware bug involving V immediates with W types. It appears that a mov(8) g2<1>W 0x76543210V will actually result in g2 getting the value {3, 2, 1, 0, 3, 2, 1, 0}. In particular, the bottom four nibbles are repeated instead of the top four being taken. (A mov of 0x00003210V yields the same result.) This bug does not appear in any hardware documentation as far as we can tell and the simulator does not implement the bug either. Commit 6132992cdb858268af0e985727d80e4140be389c was mostly a no-op except that it changed the type of the subgroup invocation from UW to W and caused us to tickle this bug with basically every compute shader that uses any sort of invocation ID (which is most of them). This is also potentially an issue for geometry shader input pulls and SampleID setup. The easy solution is just to change the few places where we use a vector integer immediate with a W type to use a UW type. Reviewed-by: Matt Turner <mattst88@gmail.com> Cc: mesa-stable@lists.freedesktop.org Fixes: 6132992cdb858268af0e985727d80e4140be389c
2018-01-12ac/nir: fix translation of nir_op_fsign for doublesTimothy Arceri1-7/+19
Without this we end up with the llvm error message: "Both operands to a binary operator are not of the same type!" Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
2018-01-12ac: add f64_0 to the llvm build contextTimothy Arceri2-0/+2
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
2018-01-12ac/nir: fix translation of nir_op_frcp for doublesTimothy Arceri1-1/+2
Without this we end up with the llvm error message: "Both operands to a binary operator are not of the same type!" Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
2018-01-12ac/nir: fix translation of nir_op_frsq for doublesTimothy Arceri1-1/+2
Without this we end up with the llvm error message: "Both operands to a binary operator are not of the same type!" Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
2018-01-12ac: add f64_1 to the llvm build contextTimothy Arceri2-0/+2
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
2018-01-11radv: reset semaphores & fences on sync_file export.Bas Nieuwenhuizen1-0/+16
Per spec: "Additionally, exporting a fence payload to a handle with copy transference has the same side effects on the source fence’s payload as executing a fence reset operation. If the fence was using a temporarily imported payload, the fence’s prior permanent payload will be restored." And similar for semaphores: "Additionally, exporting a semaphore payload to a handle with copy transference has the same side effects on the source semaphore’s payload as executing a semaphore wait operation. If the semaphore was using a temporarily imported payload, the semaphore’s prior permanent payload will be restored." Fixes: 42bc25a79c "radv: Advertise sync fd import and export." Reviewed-by: Dave Airlie <airlied@redhat.com>
2018-01-11intel: Add more Coffee Lake PCI IDsAnuj Phogat1-1/+9
More Coffee Lake PCI IDs have been added to the spec. Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
2018-01-11Revert "Revert "i965/fs: Use align1 mode on ternary instructions on Gen10+""Matt Turner1-4/+8
This reverts commit 2d0457203871c843ebfc90fb895b65a9b14cd9bb. Acked-by: Scott D Phillips <scott.d.phillips@intel.com>
2018-01-11i965/fs: Add/use functions to convert to 3src_align1 vstride/hstrideMatt Turner1-28/+41
Some cases weren't handled, such as stride 4 which is needed for 64-bit operations. Presumably fixes the assertion failure mentioned in commit 2d0457203871 (Revert "i965/fs: Use align1 mode on ternary instructions on Gen10+") but who can really say since the commit neglected to list any of them! Reviewed-by: Scott D Phillips <scott.d.phillips@intel.com>
2018-01-11anv: Make sure state on primary is correct after CmdExecuteCommandsAlex Smith1-0/+9
After executing a secondary command buffer, we need to update certain state on the primary command buffer to reflect changes by the secondary. Otherwise subsequent commands may not have the correct state set. This fixes various issues (rendering errors, GPU hangs) seen after executing secondary command buffers in some cases. v2 (Jason Ekstrand): - Reset to invalid values instead of pulling from the secondary - Change the comment to be more descriptive Signed-off-by: Alex Smith <asmith@feralinteractive.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Cc: mesa-stable@lists.freedesktop.org
2018-01-11svga: simplify failure code in emit_rss_vgpu9()Brian Paul1-17/+12
No need for a goto. Reviewed-by: Neha Bhende <bhenden@vmware.com> Reviewed-by: Charmaine Lee <charmainel@vmware.com>
2018-01-11svga: remove unused fail parameter to EMIT_RS(), EMIT_RS_FLOAT()Brian Paul1-57/+57
Reviewed-by: Neha Bhende <bhenden@vmware.com> Reviewed-by: Charmaine Lee <charmainel@vmware.com>
2018-01-11svga: add assertion in svga_queue_rs()Brian Paul1-0/+1
Reviewed-by: Neha Bhende <bhenden@vmware.com> Reviewed-by: Charmaine Lee <charmainel@vmware.com>