summaryrefslogtreecommitdiffstats
path: root/src/intel
Commit message (Collapse)AuthorAgeFilesLines
* anv: automake: cleanup the generated json file during make cleanEmil Velikov2016-10-241-1/+1
| | | | Signed-off-by: Emil Velikov <[email protected]>
* anv: Always use the full driver path in the intel_icd.*.jsonJason Ekstrand2016-10-212-8/+2
| | | | | | Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Emil Velikov <[email protected]> Cc: "13.0" <[email protected]>
* anv: Suffix the intel_icd file with the host CPUJason Ekstrand2016-10-212-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]> Reviewed-by: Emil Velikov <[email protected]> Cc: "13.0" <[email protected]>
* anv: drop unused zero macro.Dave Airlie2016-10-201-2/+0
| | | | | | | I can't see this being used anywhere. Reviewed-by: Jason Ekstrand <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* anv/wsi/wl: stop using device in more placesDave Airlie2016-10-193-20/+28
| | | | Reviewed-by: Jason Ekstrand <[email protected]>
* anv/wsi: split out surface creation to avoid instance APIDave Airlie2016-10-192-29/+64
| | | | Reviewed-by: Jason Ekstrand <[email protected]>
* anv/wsi: move further away from passing anv displays aroundDave Airlie2016-10-194-39/+35
| | | | Reviewed-by: Jason Ekstrand <[email protected]>
* 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 <[email protected]>
* anv/wsi: switch to using VkDevice in swapchainDave Airlie2016-10-194-14/+14
| | | | Reviewed-by: Jason Ekstrand <[email protected]>
* anv/wsi/x11: more refactoring to use generic handlesDave Airlie2016-10-191-27/+43
| | | | Reviewed-by: Jason Ekstrand <[email protected]>
* anv/wsi/x11: start refactoring out the image allocation/free functionalityDave Airlie2016-10-191-22/+52
| | | | Reviewed-by: Jason Ekstrand <[email protected]>
* anv/wsi: drop device from get formatDave Airlie2016-10-194-5/+5
| | | | | | Just use the wsi_device instead. Reviewed-by: Jason Ekstrand <[email protected]>
* anv/wsi: remove device from get_support interfaceDave Airlie2016-10-194-5/+10
| | | | | | replace with wsi_device and allocator. Reviewed-by: Jason Ekstrand <[email protected]>
* 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 <[email protected]>
* anv/wsi/x11: push anv_device out of the init/finish routinesDave Airlie2016-10-193-15/+19
| | | | Reviewed-by: Jason Ekstrand <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* anv/wsi: drop device from get capsDave Airlie2016-10-194-4/+1
| | | | Reviewed-by: Jason Ekstrand <[email protected]>
* anv/wsi: drop get present modes device argDave Airlie2016-10-194-4/+1
| | | | Reviewed-by: Jason Ekstrand <[email protected]>
* radv/anv/wsi: drop unneeded parameterDave Airlie2016-10-194-4/+1
| | | | Reviewed-by: Jason Ekstrand <[email protected]>
* anv: drop pointless struct decl.Dave Airlie2016-10-191-2/+0
| | | | | Acked-by: Jason Ekstrand <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* 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 <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* 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 <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* 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 <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* intel: genxml: add SAMPLER_BORDER_COLOR_STATE structuresLionel Landwerlin2016-10-185-0/+90
| | | | | Signed-off-by: Lionel Landwerlin <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* 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" <[email protected]> Signed-off-by: Jonathan Gray <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* 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 <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* 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 <[email protected]> Reviewed-by: Anuj Phogat <[email protected]>
* 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 <[email protected]> Reviewed-by: Anuj Phogat <[email protected]>
* anv/cmd_buffer: Expose ensure_push_constant_*Jason Ekstrand2016-10-172-6/+9
| | | | | Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Anuj Phogat <[email protected]>
* 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 <[email protected]> Reviewed-by: Anuj Phogat <[email protected]>
* 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 <[email protected]> Reviewed-by: Anuj Phogat <[email protected]>
* 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 <[email protected]> Reviewed-by: Anuj Phogat <[email protected]>
* anv: replace , with ; in anv_batch_emit()Lionel Landwerlin2016-10-172-12/+12
| | | | | Signed-off-by: Lionel Landwerlin <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* 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 <[email protected]> Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]>
* intel/genxml: Make some PIPE_CONTROL fields booleansJason Ekstrand2016-10-155-26/+11
| | | | | Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* intel/genxml: Make "Predication enable" a booleanJason Ekstrand2016-10-152-2/+2
| | | | | Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* 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 <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* intel/genxml; Make "Tiled Surface" a booleanJason Ekstrand2016-10-153-4/+4
| | | | | Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* intel/genxml: Make "SO Buffer Enable" fields booleanJason Ekstrand2016-10-152-8/+8
| | | | | Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* intel/genxml: Make "Stencil Buffer Enable" a booleanJason Ekstrand2016-10-153-3/+3
| | | | | Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* intel/genxml: Make a couple of STREAMOUT fields booleansJason Ekstrand2016-10-154-8/+8
| | | | | Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* intel/genxml: Make "Include Vertex Handles" and "Include Primitive ID" booleansJason Ekstrand2016-10-154-12/+12
| | | | | Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* intel/genxml: Make "Vector Mask Enable" a booleanJason Ekstrand2016-10-153-9/+9
| | | | | | | We also get rid of the "(VME)" a few places Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* intel/genxml: Make "Single Program Flow" a booleanJason Ekstrand2016-10-155-17/+17
| | | | | | | We also get rid of the "(SPF)" a few places. Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* anv/pipeline: Remove a meta hack from emit_ds_stateJason Ekstrand2016-10-141-4/+1
| | | | Signed-off-by: Jason Ekstrand <[email protected]>