summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* anv/formats: Rename ambiguous func parameterChad Versace2016-01-221-2/+2
| | | | | vkGetPhysicalDeviceImageFormatProperties has multiple 'flags' parameters.
* anv/formats: Advertise multisample formatsChad Versace2016-01-221-3/+12
| | | | | Teach vkGetPhysicalDeviceImageFormatProperties() to advertise multisampled formats.
* anv/image: Drop assertion that samples == 1Chad Versace2016-01-221-1/+1
|
* isl: Fix gen8_choose_msaa_layout()Chad Versace2016-01-221-1/+1
| | | | Gen8 requires any Y tiling, not any *standard* Y tiling.
* isl: Add func isl_tiling_is_any_y()Chad Versace2016-01-221-0/+6
|
* anv/meta: Assert correct sample counts for blit funcsChad Versace2016-01-221-2/+28
| | | | | | | | Add assertions to: anv_CmdBlitImage anv_CmdCopyImage anv_CmdCopyImageToBuffer anv_CmdCopyBufferToImage
* anv: Add anv_image::samplesChad Versace2016-01-222-0/+2
| | | | It's set but not yet used.
* anv: Use isl_device_get_sample_counts()Chad Versace2016-01-221-4/+1
| | | | Use it in vkGetPhysicalDeviceProperties.
* isl: Add func isl_device_get_sample_counts()Chad Versace2016-01-222-0/+47
|
* gen8/state: Remove SKL special-casing for MinimumArrayElementNanley Chery2016-01-221-11/+4
| | | | | | | | | MinimumArrayElement carries the same meaning for BDW and SKL. Suggested by Jason. No regressions in dEQP-VK.pipeline.image.view_type.cube_array.* Fixes a number of cube tests, including cube_array_base_slice and cube_base_slice tests.
* anv/state: Dedupe code for lowering surface formatChad Versace2016-01-223-8/+16
| | | | Add helper anv_surface_format().
* anv/meta: Set sampler type and instruction arrayness consistently in blit ↵Francisco Jerez2016-01-221-5/+3
| | | | shader.
* anv/meta: Fix meta blit fragment shader for 1D arrays.Francisco Jerez2016-01-221-3/+10
|
* genX/state: Set CubeSurfaceControlMode to OVERRIDEJason Ekstrand2016-01-222-2/+2
| | | | | | | | | This makes it act like the address mode is set to TEXCOORDMODE_CUBE whenever this sampler is combined with a cube surface. This *should* be what we need for Vulkan. Interestingly, the PRM contains a programming note for this field that says simply, "This field must be set to CUBECTRLMODE_PROGRAMMED". However, emprical evidence suggests that it does what the PRM says it does and OVERRIDE is just fine.
* gen8/state: Divide depth by 6 for cube maps for GEN8Jason Ekstrand2016-01-221-1/+1
| | | | | For Broadwell cube maps, MinimumArrayElement is in terms of 2d slices (a multiple of 6) but Depth is in terms of whole cubes.
* gen8_state: Enable all cube facesNanley Chery2016-01-221-0/+6
| | | | | | | | These fields are ignored for non-cube surfaces. For cube surfaces these fields should be enabled when using TEXCOORDMODE_CLAMP and TEXCOORDMODE_CUBE. TODO: Determine if these are the only two modes used in Vulkan.
* isl/format_layout: R11G11B10_FLOAT is unsignedJason Ekstrand2016-01-221-1/+1
|
* anv/image: Move common code to anv_image.cJason Ekstrand2016-01-224-148/+96
|
* anv/state: Refactor surface state setup into a "fill" functionJason Ekstrand2016-01-222-61/+36
|
* anv/state: Add missing clflushes for storage image surface state.Francisco Jerez2016-01-222-0/+4
|
* anv/state: Factor out surface state calculation from genX_image_view_init.Francisco Jerez2016-01-222-81/+109
| | | | | | | | | Some fields of the surface state template were dependent on the surface type, which is dependent on the usage of the image view, which wasn't known until the bottom of the function after the template had been constructed. This caused failures in all image load/store CTS tests using cubemaps. Refactor the surface state calculation into a function that is called once for each required usage.
* i965/nir: Temporariliy disable mul+add fusionJason Ekstrand2016-01-221-1/+1
| | | | | | We don't want to do this in the long-run but it's needed for passing the NoContraction tests at the moment. Eventually, we want to plumb this through NIR properly.
* isl: Fix indentation of isl_format_layout commentChad Versace2016-01-221-5/+5
|
* isl/tests: Give tests less cryptic namesChad Versace2016-01-221-4/+4
|
* isl: Fix isl_surf_get_image_offset_sa for gen4_3d layoutChad Versace2016-01-221-2/+1
| | | | | Bug found by unit test test_bdw_3d_r8g8b8a8_unorm_256x256x256_levels09_tiley0.
* isl/tests: Add test for bdw 3d surfaceChad Versace2016-01-221-1/+64
| | | | | | test_bdw_3d_r8g8b8a8_unorm_256x256x256_levels09_tiley0 Currently fails.
* isl/tests: Remove copy-paste assertionChad Versace2016-01-221-1/+0
|
* isl/tests: Fix buildChad Versace2016-01-221-2/+4
| | | | isl_device_init() acquired a new param for bit6 swizzling.
* anv/batch_chain: Fix patching up of block pool relocations on Gen8+.Francisco Jerez2016-01-211-5/+24
| | | | | | | | Relocations are 64 bits on Gen8+. Most CTS tests that send non-trivial work to the GPU would fail when run from a single deqp-vk invocation because they were effectively relying on reloc presumed offsets to be wrong so the kernel would come and apply relocations correctly.
* nir/spirv: Ignore cull distanceJason Ekstrand2016-01-211-1/+1
|
* nir/lower_system_values: Use the correct invication id for CSJason Ekstrand2016-01-211-1/+1
|
* nir/spirv: Properly assign locations to split structuresJason Ekstrand2016-01-213-17/+47
|
* nir/spirv: Improve handling of variable loads and copiesJason Ekstrand2016-01-211-26/+128
| | | | | | | Before we were asuming that a deref would either be something in a block or something that we could pass off to NIR directly. However, it is possible that someone would choose to load/store/copy a split structure all in one go. We need to be able to handle that.
* nir/spirv: Make vectors a proper array time with an array_elementJason Ekstrand2016-01-212-24/+6
| | | | This makes dealing with single-component derefs easier
* nir/spirv: Rework access chains a bit to allow for literalsJason Ekstrand2016-01-212-37/+75
| | | | | This makes them much easier to construct because you can also just specify a literal number and it doesn't have to be a valid SPIR-V id.
* vtn/variables: Compact local loads/stores into one functionJason Ekstrand2016-01-211-99/+42
| | | | This is similar to what we did for block loads/stores.
* nir/spirv: Add an actual variable struct to spirv_to_nirJason Ekstrand2016-01-214-310/+340
| | | | | This allows us, among other things, to do structure splitting on-the-fly to more correctly handle input/output structs.
* nir/spirv: Split variable handling out into its own fileJason Ekstrand2016-01-214-1303/+1337
| | | | It's 1300 lines all by itself and it will only grow.
* nir/spirv: Rework access chainsJason Ekstrand2016-01-214-365/+447
| | | | | | | Previously, we were creating nir_deref's immediately. Now, instead, we have an intermediate vtn_access_chain structure. While a little more awkward initially, this will allow us to more easily do structure splitting on-the-fly.
* nir/spirv: Implement ModfStruct opcode.Kenneth Graunke2016-01-211-1/+7
|
* nir/spirv: Delete stray fmod remnants.Kenneth Graunke2016-01-211-1/+0
| | | | | Jason left these stray code fragments in 22804de110b97dce1415318fd02c1003e16ef14a.
* vk: Do render cache flush for GEN8+Kristian Høgsberg Kristensen2016-01-211-2/+2
| | | | This is needed for SKL as well.
* vk: Emit surface state base address before renderpassKristian Høgsberg Kristensen2016-01-211-2/+2
| | | | | | | If we're continuing a render pass, make sure we don't emit the depth and stencil buffer addresses before we set the state base addresses. Fixes crucible func.cmd-buffer.small-secondaries
* vk: Fix indirect push constantsKristian Høgsberg Kristensen2016-01-213-39/+15
| | | | | | | This currently sets the base and size of all push constants to the entire push constant block. The idea is that we'll use the base and size to eventually optimize the amount we actually push, but for now we don't do that.
* Merge remote-tracking branch 'jekstrand/wip/i965-uniforms' into vulkanKristian Høgsberg Kristensen2016-01-2115-229/+313
|\
| * i965/fs: Push small uniform arraysJason Ekstrand2015-12-141-23/+53
| | | | | | | | | | | | | | | | | | | | Unfortunately, this also means that we need to use a slightly different algorithm for assign_constant_locations. The old algorithm worked based on the assumption that each read of a uniform value read exactly one float. If it encountered a MOV_INDIRECT, it would immediately bail and push the whole thing. Since we can now read ranges using MOV_INDIRECT, we need to be able to push a series of floats without breaking them up. To do this, we use an algorithm similar to the on in split_virtual_grfs.
| * i965/fs: Rename demote_pull_constants to lower_constant_loadsJason Ekstrand2015-12-142-3/+3
| |
| * i965/vec4: Get rid of the uniform_size arrayJason Ekstrand2015-12-145-31/+0
| |
| * i965/fs: Use UD type for offsets in VARYING_PULL_CONSTANT_LOADJason Ekstrand2015-12-141-1/+1
| |
| * i965/vec4: Use MOV_INDIRECT instead of reladdr for indirect push constantsJason Ekstrand2015-12-144-51/+50
| | | | | | | | | | | | | | | | | | | | | | | | This commit moves us to an instruction based model rather than a register-based model for indirects. This is more accurate anyway as we have to emit instructions to resolve the reladdr. It's also a lot simpler because it gets rid of the recursive reladdr problem by design. One side-effect of this is that we need a whole new algorithm in move_uniform_array_access_to_pull_constants. This new algorithm is much more straightforward than the old one and is fairly similar to what we're already doing in the FS backend.