summaryrefslogtreecommitdiffstats
path: root/src/intel/vulkan
Commit message (Collapse)AuthorAgeFilesLines
* anv/formats: Add support for VK_FORMAT_B4G4R4A4_UNORM pre-gen8Jason Ekstrand2016-05-171-0/+10
|
* anv: Add a devinfo argument to the get_format functionsJason Ekstrand2016-05-175-15/+20
|
* anv/formats: Set the swizzle to RGB1 when using an RGBA format to fake RGBJason Ekstrand2016-05-171-2/+5
| | | | | | | | | This way we get correct sampling from RGB formats that are faked as RGBA. This should also cause it to disable rendering and blending on those formats. We should be able to render to them and, on Broadwell and above, we can blend on them with work-arounds. However, we'll add support for that more properly later when it's deemed useful. For now, disabling rendering and blending should be safe.
* anv/formats: Refactor anv_get_formatJason Ekstrand2016-05-171-30/+27
| | | | | | The new code removes the switch statement and instead handles depth/stencil as up-front special cases. This allows for potentially more complicated color format handling in the future.
* anv: Use 16 bits for the isl_format in anv_formatJason Ekstrand2016-05-171-1/+1
| | | | This way the entire anv_format structure fits in 32 bits
* anv/formats: Use the isl_channel_select enum for the swizzleJason Ekstrand2016-05-173-20/+24
|
* anv/formats: Add an anv_get_format helperJason Ekstrand2016-05-175-66/+58
| | | | | | | | | This commit removes anv_format_for_vk_format and adds an anv_get_format helper. The anv_get_format helper returns the anv_format by-value. Unlike anv_format_for_vk_format the format returned by anv_get_format is 100% accurate and includes any tweaks needed for tiled vs. linear. anv_get_isl_format is now just a wrapper around anv_get_format that picks off just the isl_format.
* anv/format: Simplify anv_formatJason Ekstrand2016-05-172-55/+39
| | | | | | Now that we have VkFormat introspection and we've removed everything that tried to use anv_format for introspection, we no longer need most of what was in anv_format.
* anv/formats: Delete validate_GetPhysicalDeviceFormatPropertiesJason Ekstrand2016-05-171-10/+0
| | | | | All it ever did was some extra logging that was useful when initially bringing up Dota2. We don't need it anymore.
* anv/image: Use aspects for computing full usageJason Ekstrand2016-05-171-4/+3
|
* anv: Remove the anv_format member from anv_imageJason Ekstrand2016-05-173-4/+2
|
* anv/wsi: Use vk_format_info for asserts rather than anv_formatJason Ekstrand2016-05-172-2/+4
|
* anv/copy: Use the linear format from the image for the buffer block sizeJason Ekstrand2016-05-171-1/+4
| | | | | | Because the buffer is exposed to the user, the block size is defined to always exactly be the size of the actual vulkan format. This is the same size (it had better be) as the linaer image format.
* anv/image: Stop using anv_format for image create validationJason Ekstrand2016-05-171-6/+2
|
* anv/image: Make heavier use of aspectsJason Ekstrand2016-05-171-50/+34
|
* anv/copy: Use the color_surf from the image to get the block sizeJason Ekstrand2016-05-171-9/+20
|
* anv: Change render_pass_attachment.format to a VkFormatJason Ekstrand2016-05-173-5/+8
|
* anv: Add helpers to provide simple VkFormat introspectionJason Ekstrand2016-05-172-1/+67
| | | | | | | | As much as I hate adding yet more format introspection, there are times when the VkFormat is sufficient and we don't want to round-trip through isl_format. For these times, the new vk_format_info.c/h files provide some simple driver-agnostic VkFormat introspection. This intended to be specific to Vulkan but not to any driver whatsoever.
* anv/image: Use get_isl_format when creating buffer viewsJason Ekstrand2016-05-171-5/+6
|
* anv/image: Add an aspects fieldJason Ekstrand2016-05-174-8/+10
| | | | | This makes several checks easier and allows us to avoid calling anv_format_for_vk_format in a number of cases.
* anv: Make format_for_descriptor return an isl_formatJason Ekstrand2016-05-173-13/+11
|
* anv/wayland: Don't allow non-renderable formatsJason Ekstrand2016-05-171-4/+7
|
* anv/wsi: Make WSI per-physical-device rather than per-instanceJason Ekstrand2016-05-176-66/+70
| | | | | This better maps to the Vulkan object model and also allows WSI to at least know the hardware generation which is useful for format checks.
* i965/fs: Add an allow_spilling flag to brw_compile_fsJason Ekstrand2016-05-171-1/+2
| | | | | | | | | This allows us to disable spilling for blorp shaders since blorp state setup doesn't handle spilling. Without this, blorp fails hard if you run with INTEL_DEBUG=spill. Reviewed-by: Francisco Jerez <[email protected]> Tested-by: Francisco Jerez <[email protected]>
* nir/builder: Add a helper for grabbing multiple channels from an ssa defJason Ekstrand2016-05-141-3/+1
| | | | | | | This is similar to nir_channel except that it lets you grab more than one channel by providing a mask. Reviewed-by: Kenneth Graunke <[email protected]>
* i965/fs: Organize prog_data by ksp number rather than SIMD widthJason Ekstrand2016-05-144-49/+21
| | | | | | | | | | The hardware packets organize kernel pointers and GRF start by slots that don't map directly to dispatch width. This means that all of the state setup code has to re-arrange the data from prog_data into these slots. This logic has been duplicated 4 times in the GL driver and one more time in the Vulkan driver. Let's just put it all in brw_fs.cpp. Reviewed-by: Kenneth Graunke <[email protected]>
* i965/fs: Rework the persample shading key/prog_data bitsJason Ekstrand2016-05-141-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | This commit reworks and simplifies the way we handle persample shading in the shader key and prog_data. The previous approach had three different key bits that had slightly different and hard-to-decern meanings while the new bits are far more clear. This commit changes it to two easily understood bits that communicate everything we need: 1) key->persample_interp: means that the user has requested persample interpolation through the API. This is equivalent to having SAMPLE_SHADING enabled and having MIN_SAMPLE_SHADING_VALUE set high enough that you actually get multiple per-sample invocations. 2) key->multisample_fbo: means that the shader will be running on an actual multi-sampled framebuffer. This commit also adds a new "persample_dispatch" bit to prog_data which indicates that the shader should be run in persample mode. This way the state setup code doesn't have to look at the fragment program or GL state and can just pull that data out of the prog_data. In theory, this shuffle could mean more recompiles. However, in practice, we were shoving enough state into the key before that we were probably hitting a recompile on every per-sample shader anyway. Reviewed-by: Kenneth Graunke <[email protected]>
* anv/copy: Fix copying Images from Buffers with larger dimensionsNanley Chery2016-05-131-8/+11
| | | | | | | | | | | | | This function previously assumed that the Buffer and Image had matching dimensions. However, it is possible to copy from a Buffer with larger dimensions than the Image. Modify the copy function to enable this. v2: Use ternary instead of MAX for setting bufferExtent (Jason Ekstrand) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=95292 Signed-off-by: Nanley Chery <[email protected]> Tested-by: Matthew Waters <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* anv: Don't advertise shaderImageGatherExtendedJason Ekstrand2016-05-121-1/+1
| | | | | We don't actually support all of the extended gather functionality so we shouldn't be advertising it.
* anv: fix build breakRob Clark2016-05-111-1/+1
| | | | | | | | | Previous rename of lower-output-to-temps pass predated merging of anv, and apparently vulkan wasn't enabled in my local builds so overlooked this when rebasing. Reported-by: Mark Janes <[email protected]> Signed-off-by: Rob Clark <[email protected]>
* anv: fix hang during generation of dev_icd.json.Knut Andre Tidemann2016-05-031-1/+1
| | | | | Fixes: b370ec7c76d ("anv: tweak the %.json rule") Reviewed-by: Emil Velikov <[email protected]>
* anv: include the files in the tarballEmil Velikov2016-05-012-2/+10
| | | | | | | | Namely the python script, the ICD header and private headers. We could get the system version of the ICD ones, although there is no .pc file to easily locate and/or manage them. Signed-off-by: Emil Velikov <[email protected]>
* anv: update .gitignoreEmil Velikov2016-05-011-4/+0
| | | | Signed-off-by: Emil Velikov <[email protected]>
* anv: automake: remove no longer needed includeEmil Velikov2016-05-011-1/+0
| | | | | | Thanks to last commit we can nuke it. Signed-off-by: Emil Velikov <[email protected]>
* anv: automake: tweak anv_entrypoint.[ch] ruleEmil Velikov2016-05-011-2/+4
| | | | | | | Rather than using cat + cpp feed the file(s) directly into the latter. Signed-off-by: Emil Velikov <[email protected]> Acked-by: Jason Ekstrand <[email protected]>
* anv: tweak libvulkan_intel.so link librariesEmil Velikov2016-05-011-1/+3
| | | | | | i.e do not use -lfoo directly. Signed-off-by: Emil Velikov <[email protected]>
* anv: cosmetic makefile changesEmil Velikov2016-05-011-13/+11
| | | | | Signed-off-by: Emil Velikov <[email protected]> Acked-by: Jason Ekstrand <[email protected]>
* anv: place the builddir includes before the srcdir onesEmil Velikov2016-05-011-5/+5
| | | | | | | | Otherwise we risk picking the possibly outdated file in the source dir over the fresh one in the builddir. Signed-off-by: Emil Velikov <[email protected]> Acked-by: Jason Ekstrand <[email protected]>
* automake: drop "EGL_" from HAVE_EGL_PLATFORM_WAYLANDEmil Velikov2016-05-011-1/+1
| | | | | | Analogous to previous commit. Signed-off-by: Emil Velikov <[email protected]>
* automake: drop "EGL_" from HAVE_EGL_PLATFORM_X11Emil Velikov2016-05-011-1/+1
| | | | | | | The variable covers more than just EGL, let's try to untangle the confusion it brings. Signed-off-by: Emil Velikov <[email protected]>
* anv: get rid of VULKAN_ENTRYPOINT_CPPFLAGS variableEmil Velikov2016-05-011-11/+3
| | | | | | | | Add the missing include to AM_CPPFLAGS and use it throughout the makefile. Signed-off-by: Emil Velikov <[email protected]> Acked-by: Jason Ekstrand <[email protected]>
* anv: factor out the X11/XCB buildEmil Velikov2016-05-013-6/+23
| | | | | | | | | | | Similar to earlier commit - move all the common bits into a single place, thus improving readability and allowing us to see what's missing. Also don't forget to add the missing bits. This commit should allows us to build wayland only vulkan ;-) Signed-off-by: Emil Velikov <[email protected]> Acked-by: Jason Ekstrand <[email protected]>
* anv: kill of custom define HAVE_WAYLAND_PLATFORMEmil Velikov2016-05-013-5/+4
| | | | | | | Vulkan API already has equivalent, so simplify things as just use it. Signed-off-by: Emil Velikov <[email protected]> Acked-by: Jason Ekstrand <[email protected]>
* anv: refactor wayland build handlingEmil Velikov2016-05-011-15/+12
| | | | | | | | | | | Rather than having things split out in multiple places, consolidate it and add all the missing bits. Also ensure that we use the already built static library libwayland-drm.la. v2 Add missing '\' in the CFLAGS. Signed-off-by: Emil Velikov <[email protected]> Acked-by: Jason Ekstrand <[email protected]> (v1)
* anv: use a common variable to manage the library dependenciesEmil Velikov2016-05-011-11/+15
| | | | | Signed-off-by: Emil Velikov <[email protected]> Acked-by: Jason Ekstrand <[email protected]>
* anv: use the GENERATED_FILES variableEmil Velikov2016-05-012-2/+1
| | | | | | | | | | | ... rather than having duplicates files through the sources lists. Splitting things as is, has the side effect of making things clearer and easing a potential android build. The latter of which automatically adds BUILT_SOURCES to the binary. Signed-off-by: Emil Velikov <[email protected]> Acked-by: Jason Ekstrand <[email protected]>
* anv: fold the tests' makefileEmil Velikov2016-05-012-49/+15
| | | | | | | | | Recent commit removed the winsys defines from anv_private.h thus breaking the tests. To fix that and avoid it in the future, merge the tests makefile in the libvulkan one. Signed-off-by: Emil Velikov <[email protected]> Acked-by: Jason Ekstrand <[email protected]>
* anv: build the core vulkan only onceEmil Velikov2016-05-011-8/+6
| | | | | | | | Introduce a static library libvulkan_common.la that is used by libvukan_intel.la and libvulkan_test.la. Signed-off-by: Emil Velikov <[email protected]> Acked-by: Jason Ekstrand <[email protected]>
* anv: kill off custom CFLAGSEmil Velikov2016-05-011-10/+6
| | | | | | | AM_CFLAGS already does all that we need. Signed-off-by: Emil Velikov <[email protected]> Acked-by: Jason Ekstrand <[email protected]>
* anv: add missing link against the math libraryEmil Velikov2016-05-011-1/+2
| | | | | Signed-off-by: Emil Velikov <[email protected]> Acked-by: Jason Ekstrand <[email protected]>