summaryrefslogtreecommitdiffstats
path: root/src/intel
Commit message (Collapse)AuthorAgeFilesLines
...
| * intel/blorp: Use wm_prog_data instead of hand-rolling our ownJason Ekstrand2016-11-095-66/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98012 Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com> Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com> Cc: "13.0" <mesa-stable@lists.freedesktop.org> (cherry picked from commit 058304f0819c96fd18eb17911022a410540aa295) [Emil Velikov: brw_compile_fs() has different signature] Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Conflicts: src/intel/blorp/blorp.c
| * anv: Better handle return codes from anv_physical_device_initJason Ekstrand2016-11-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | The case where we just want the loop to continue is INCOMPATIBLE_DRIVER because that simply means that whatever FD we opened isn't a supported Intel chip. Other error codes such as OUT_OF_HOST_MEMORY are actual errors and we should be returning early in that case. Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Dave Airlie <airlied@redhat.com> Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com> Cc: "13.0" <mesa-stable@lists.freedesktop.org> (cherry picked from commit a5f8ff6ca18c38a7c4b5b37a4d5b14ca01e71b1e)
| * anv/device: Return DEVICE_LOST if execbuf2 failsJason Ekstrand2016-11-091-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | This makes more sense than OUT_OF_HOST_MEMORY. Technically, you can recover from a failed execbuf2 but the batch you just submitted didn't fully execute so things are in an ill-defined state. The app doesn't want to continue from that point anyway. Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Cc: "13.0" <mesa-stable@lists.freedesktop.org> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> (cherry picked from commit c41ec1679f02d6705ceda49d9ad966d0d0833824)
* | android: intel/genxml: generate aubinator xml headers (v2)Mauro Rossi2016-11-011-10/+35
|/ | | | | | | | | | | | | | New generated headers were introduced by commit 63a366a "intel: aubinator: generate a standalone binary" The new aubinator generated files are listed in Makefile.sources variable, rules are added to Android build system for future use. New macro xml-header-gen is basically a copy&paste of automake rules, but xxd is invoked directly, as Android build systems stops and shows the error in case of xxd missing. Existing macro header-gen is renamed to pack-header-gen as a refinement.
* intel/blorp: Rework our usage of ralloc when compiling shadersJason Ekstrand2016-11-014-14/+14
| | | | | | | | | | | | | | | | | | | | | | Previously, we were creating the shader with a NULL ralloc context and then trusting in blorp_compile_fs to clean it up. The only problem was that blorp_compile_fs didn't clean up its context properly so we were leaking. When I went to fix that, I realized that it couldn't because it has to return the shader binary which is allocated off of that context and used by the caller. The solution is to make blorp_compile_fs take a ralloc context, allocate the nir_shaders directly off that context, and clean it all up in whatever function creates the shader and calls blorp_compile_fs. Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com> Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com> Cc: "12.0, 13.0" <mesa-stable@lists.freedesktop.org> (cherry picked from commit 43dadb6edd5e3e3e10b1198184a9f75556edad49) [Emil Velikov: resolve trivial conflicts] Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Conflicts: src/intel/blorp/blorp_clear.c
* intel/blorp: Rename compile_nir_shader to compile_fsJason Ekstrand2016-11-014-14/+14
| | | | | | Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com> (cherry picked from commit ab92480272bc34d943d28506cc36759e141b4371)
* intel/blorp: Fix a couple asserts around image copy rectanglesJason Ekstrand2016-11-011-2/+6
| | | | | | | | | | | | | | | | | | With dealing with rectangles in compressed images, you can have a width or height that isn't a multiple of the corresponding compression block dimension but only if that edge of your rectangle is on the edge of the image. When we call convert_to_single_slice, it creates an 2-D image and a set of tile offsets into that image. When detecting the right-edge and bottom-edge cases, we weren't including the tile offsets so the assert would misfire. This caused crashes in a few UE4 demos Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reported-by: "Eero Tamminen" <eero.t.tamminen@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98431 Cc: "13.0" <mesa-stable@lists.freedesktop.org> Tested-by: "Eero Tamminen" <eero.t.tamminen@intel.com> Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> (cherry picked from commit 4964a5149b7776ce27aaeab2be0c2ebf41ded740)
* anv: Replace "abi_versions" with correct "api_version".Matt Turner2016-10-272-2/+2
| | | | | | | | | git history shows "abi_versions" was used from the outset. Cc: <mesa-stable@lists.freedesktop.org> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98415 Reviewed-by: Dave Airlie <airlied@redhat.com> (cherry picked from commit 07755237d36754cb44c32e17e32cf1bc551d2373)
* anv: automake: cleanup the generated json file during make cleanEmil Velikov2016-10-241-1/+1
| | | | | | | | Signed-off-by: Emil Velikov <emil.velikov@collabora.com> (cherry picked from commit 8df581520a823564be0ab5af7dbb7d501b1c9670) Conflicts: src/intel/vulkan/Makefile.am
* anv: Suffix the intel_icd file with the host CPUJason Ekstrand2016-10-243-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Vulkan has a multi-arch problem... The idea behind the Vulkan loader is that you have a little json file on your disk that tells the loader where to find drivers. The loader looks for these json files in standard locations, and then goes and loads the my_driver.so's that they specify. This allows you as a driver implementer to put their driver wherever on the disk they want so long as the ICD points in the right place. For a multi-arch system, however, you may have multiple libvulkan_intel.so files installed that the loader needs to pick depending on architecture. Since the ICD file format does not specify any architecture information, you can't tell the loader where to find the 32-bit version vs. the 64-bit version. The way that packagers have been dealing with this is to place libvulkan_intel.so in the top level lib directory and provide just a name (and no path) to the loader. It will then use the regular system search paths and find the correct driver. While this solution works fine for distro-installed Vulkan drivers, it doesn't work so well for user-installed drivers because they may put it in /opt or $HOME/.local or some other more exotic location. In this case, you can't use an ICD json file with just a library name because it doesn't know where to find it; you also have to add that to your library lookup path via LD_LIBRARY_PATH or similar. This patch handles both use-cases by taking advantage of the fact that the loader dlopen()s each of the drivers and, if one dlopen() calls fails, it silently continues on to open other drivers. By suffixing the icd file, we can provide two different json files: intel_icd.x86_64.json and intel_icd.i686.json with different paths. Since dlopen() will only succeed on the libvulkan_intel.so of the right arch, the loader will happily ignore the others and load that one. This allows us to properly handle multi-arch while still providing a full path so user installs will work fine. I tested this on my Fedora 25 machine with 32 and 64-bit builds of our Vulkan driver installed and 32 and 64-bit builds of crucible. It seems to work just fine. Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Cc: "13.0" <mesa-stable@lists.freedesktop.org> (cherry picked from commit d96345de989c8f9a0328cdc3588bfe186154c8ea) Squashed with commit: anv: Always use the full driver path in the intel_icd.*.json Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Cc: "13.0" <mesa-stable@lists.freedesktop.org> (cherry picked from commit 7ea4ef8849c5cc158adbdff1187b91f591552196) Squashed with commit: configure: Get rid of the --disable-vulkan-icd-full-driver-path flag Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Cc: "13.0" <mesa-stable@lists.freedesktop.org> (cherry picked from commit 3f05fc62f924c051bdb883482452fb37650d5768)
* Revert Use absolute path in intel_icd.json and related patches.Emil Velikov2016-10-193-15/+2
| | | | | | | | | | | | | | | | | This commit effectively reverts the following commits: This reverts commit 0b6837a643bbbf3c57c5cc5030279fb4389b23b7. This reverts commit 05f36435ef117e48f457b44877d04dd6249b3bb7. This reverts commit a2ae67aa47df6dd41802462105dac7ce5ab676a2. While the feature introduced is convinient for development it is not as useful for distributions. Furthermore it even breaks things as one wishes to have both 32 and 64 bit package installed on the same system. Keep the functionality in development branch(es) and drop it from distribution packages to avoid confusion and misuse. Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
* anv: move to using shared wsi codeDave Airlie2016-10-197-1928/+4
| | | | | | | | This moves the shared code to a common subdirectory and makes anv linked to that code instead of the copy it was using. Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
* anv/wsi: remove all anv references from WSI common codeDave Airlie2016-10-199-99/+98
| | | | | | the WSI code should be now be clean for sharing. Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
* anv: move common wsi code to x11/wayland common files.Dave Airlie2016-10-1910-1656/+1851
| | | | | | | Next task is to rename all the anv_ out of this, and move to a common location Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
* anv/wsi/wayland: add callback to get device format properties.Dave Airlie2016-10-193-7/+27
| | | | | | This avoids having to know the toplevel API name. Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
* anv/wsi/wl: stop using device in more placesDave Airlie2016-10-193-20/+28
| | | | Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
* anv/wsi: split out surface creation to avoid instance APIDave Airlie2016-10-192-29/+64
| | | | Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
* anv/wsi: move further away from passing anv displays aroundDave Airlie2016-10-194-39/+35
| | | | Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
* anv/wsi: split image alloc/free out to separate fns.Dave Airlie2016-10-194-219/+180
| | | | | | | This moves these outside the wsi platform code, so we can reuse that code Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
* anv/wsi: switch to using VkDevice in swapchainDave Airlie2016-10-194-14/+14
| | | | Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
* anv/wsi/x11: more refactoring to use generic handlesDave Airlie2016-10-191-27/+43
| | | | Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
* anv/wsi/x11: start refactoring out the image allocation/free functionalityDave Airlie2016-10-191-22/+52
| | | | Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
* anv/wsi: drop device from get formatDave Airlie2016-10-194-5/+5
| | | | | | Just use the wsi_device instead. Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
* anv/wsi: remove device from get_support interfaceDave Airlie2016-10-194-5/+10
| | | | | | replace with wsi_device and allocator. Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
* anv/wsi/x11: abstract WSI interface from internals.Dave Airlie2016-10-191-9/+24
| | | | | | | This allows the API and the internals to be split, and the internals shared. Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
* anv/wsi/x11: push anv_device out of the init/finish routinesDave Airlie2016-10-193-15/+19
| | | | Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
* anv/wsi: abstract wsi interfaces away from device a bit more.Dave Airlie2016-10-194-24/+28
| | | | | | This is a step towards separating out the wsi code for sharing Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
* anv/wsi/x11: push device out of x11 connection fns.Dave Airlie2016-10-191-11/+12
| | | | | | just pass the allocator/wsi_interface instead. Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
* anv/wsi: drop device from get capsDave Airlie2016-10-194-4/+1
| | | | Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
* anv/wsi: drop get present modes device argDave Airlie2016-10-194-4/+1
| | | | Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
* radv/anv/wsi: drop unneeded parameterDave Airlie2016-10-194-4/+1
| | | | Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
* anv: drop pointless struct decl.Dave Airlie2016-10-191-2/+0
| | | | | Acked-by: Jason Ekstrand <jason@jlekstrand.net> Signed-off-by: Dave Airlie <airlied@redhat.com>
* anv: move to using vk_alloc helpers.Dave Airlie2016-10-1918-147/+103
| | | | | | | This moves all the alloc/free in anv to the generic helpers. Acked-by: Jason Ekstrand <jason@jlekstrand.net> Signed-off-by: Dave Airlie <airlied@redhat.com>
* anv: drop local MIN/MAX macros.Dave Airlie2016-10-192-5/+2
| | | | | | | Use the ones from mesa, most places already did. Acked-by: Jason Ekstrand <jason@jlekstrand.net> Signed-off-by: Dave Airlie <airlied@redhat.com>
* anv: port to using new u_vector shared helper.Dave Airlie2016-10-195-154/+35
| | | | | | | This just removes the anv vector code and uses the new helper. Acked-by: Jason Ekstrand <jason@jlekstrand.net> Signed-off-by: Dave Airlie <airlied@redhat.com>
* intel: genxml: add SAMPLER_BORDER_COLOR_STATE structuresLionel Landwerlin2016-10-185-0/+90
| | | | | Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
* genxml: add generated headers to EXTRA_DISTJonathan Gray2016-10-181-0/+4
| | | | | | | | | Building the Mesa 12.0.3 distfile failed on a system without python as generated files were not included in the distfile. Cc: "12.0" <mesa-stable@lists.freedesktop.org> Signed-off-by: Jonathan Gray <jsg@jsg.id.au> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
* genxml: avoid using a GNU make pattern ruleJonathan Gray2016-10-181-1/+4
| | | | | | | | | | | % pattern rules are a GNU extension. Convert the use of one to a inference rule to allow this to build on OpenBSD. This is a related change to the one made in e3d43dc5eae5271e2c87bab702aa7409d3dd0b23 Signed-off-by: Jonathan Gray <jsg@jsg.id.au> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
* anv: Get rid of anv_cmd_buffer_emit_state_base_addressJason Ekstrand2016-10-173-21/+1
| | | | | | | | All code that would have once called this can now call the gen-specific version. The switching version is no longer needed. Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
* anv/cmd_buffer: Move descriptor flushing into genX_cmd_buffer.cJason Ekstrand2016-10-174-359/+327
| | | | | | | | It really should have gone here all along. We were trying a bit too hard to make it gen-agnostic just because it didn't have any #if's. Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
* anv/cmd_buffer: Expose ensure_push_constant_*Jason Ekstrand2016-10-172-6/+9
| | | | | Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
* anv/cmd_buffer: Unify flush_compute_state across gensJason Ekstrand2016-10-175-177/+93
| | | | | | | | | With one small genxml change, the two versions were basically identical. The only differences were one #define for HSW+ and a field that is missing on Haswell but exists everywhere else. Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
* anv/cmd_buffer: Move Begin/End/Execute to genX_cmd_buffer.cJason Ekstrand2016-10-174-95/+107
| | | | | | | | | vkBeginCommandBuffer and vkCmdExecuteCommands both call into the gen-specific emit_state_base_address function and vkEndCommandBuffer belongs with begin. Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
* anv/cmd_buffer: Move state base address re-emit into ExecuteCommandsJason Ekstrand2016-10-172-6/+9
| | | | | | | | | | | This has two primary advantages. First, it means that the batch_chain code knows less about the actual command buffer contents which is good because improves separation. Second, it means that it only gets re-emitted once after all of the secondaries instead of once after each secondary which is just wasteful. It also has the advantage of cleaning the code up a bit. Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
* anv: replace , with ; in anv_batch_emit()Lionel Landwerlin2016-10-172-12/+12
| | | | | Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
* intel: aubinator: use different colors to signal batch start/endLionel Landwerlin2016-10-171-5/+10
| | | | | | | | | | | This makes the stream of commands a bit easier to read. v2 (Ken): Use bold text on green headers for easier readability; swap the green and blue headers so the majority stay blue. Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
* intel/genxml: Make some PIPE_CONTROL fields booleansJason Ekstrand2016-10-155-26/+11
| | | | | Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
* intel/genxml: Make "Predication enable" a booleanJason Ekstrand2016-10-152-2/+2
| | | | | Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
* intel/genxml; Make "Use Global GTT a booleanJason Ekstrand2016-10-155-59/+32
| | | | | | | | We also remove the redundant zero defaults since everything without an explicit default gets zeroed automatically. Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
* intel/genxml; Make "Tiled Surface" a booleanJason Ekstrand2016-10-153-4/+4
| | | | | Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>