aboutsummaryrefslogtreecommitdiffstats
path: root/src/intel/vulkan/anv_descriptor_set.c
Commit message (Collapse)AuthorAgeFilesLines
* anv/descriptor_set: memset anv_descriptor_set_layoutJason Ekstrand2016-08-301-2/+1
| | | | | | | | We hash this data structure so we can't afford to have uninitialized data even if it is just structure padding. Signed-off-by: Jason Ekstrand <[email protected]> Cc: "12.0" <[email protected]>
* anv: Include the pipeline layout in the shader hashJason Ekstrand2016-08-241-0/+24
| | | | | | | | | | | | The pipeline layout affects shader compilation because it is what determines binding table locations as well as whether or not a particular buffer has dynamic offsets. Since this affects the generated shader, it needs to be in the hash. This fixes a bunch of CTS tests now that the CTS is using a pipeline cache. Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Kristian Høgsberg <[email protected]> Cc: "12.0" <[email protected]>
* anv/descriptor_set: Fix binding partly undefined descriptor setsNanley Chery2016-07-151-0/+5
| | | | | | | | | | | | | | | | Section 13.2.3. of the Vulkan spec requires that implementations be able to bind sparsely-defined Descriptor Sets without any errors or exceptions. When binding a descriptor set that contains a dynamic buffer binding/descriptor, the driver attempts to dereference the descriptor's buffer_view field if it is non-NULL. It currently segfaults on undefined descriptors as this field is never zero-initialized. Zero undefined descriptors to avoid segfaulting. This solution was suggested by Jason Ekstrand. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96850 Cc: 12.0 <[email protected]> Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* anv/descriptor_set: Ensure that bindings are always in increasing orderJason Ekstrand2016-06-101-0/+13
| | | | | | | | | | | Since applications are allowed to specify some set of bindings which need not be dense they also need not be in order. For most things, this doesn't matter, but it could result getting the wrong dynamic offsets. This adds a quick-and-dirty sort to ensure that everything is always in increasing order of binding index. Signed-off-by: Jason Ekstrand <[email protected]> Cc: "12.0" <[email protected]>
* anv/descriptor_set: Add a type field in debug buildsJason Ekstrand2016-06-101-0/+5
| | | | | | | | This allows for some extra validation and makes it easier to see what's going on when poking around in gdb. Signed-off-by: Jason Ekstrand <[email protected]> Cc: "12.0" <[email protected]>
* anv/descriptor_set: Set array_size to zero for non-existant descriptorsJason Ekstrand2016-06-101-0/+1
| | | | | Signed-off-by: Jason Ekstrand <[email protected]> Cc: "12.0" <[email protected]>
* anv: Make format_for_descriptor return an isl_formatJason Ekstrand2016-05-171-4/+2
|
* anv/descriptor_set: Use the correct size for the descriptor poolJason Ekstrand2016-02-231-6/+3
| | | | | | | The descriptor sizes array gives the total number of each type of descriptor that will ever be allocated from the pool, not the total amount that may be in any particular set. In our case, this simply means that we have to sum a bunch of things up and there we go.
* anv/descriptor_set: Set descriptor type for immuatable samplersJason Ekstrand2016-02-221-2/+11
|
* anv/descriptor_set: Stop marking everything as having dynamic offsetsJason Ekstrand2016-02-221-2/+4
|
* anv: Implement descriptor poolsKristian Høgsberg Kristensen2016-02-221-37/+152
| | | | | | | | Descriptor pools are an optimization that lets applications allocate descriptor sets through an externally synchronized object (that is, unlocked). In our case it's also plugging a memory leak, since we didn't track all allocated sets and failed to free them in vkResetDescriptorPool() and vkDestroyDescriptorPool().
* Move the intel vulkan driver to src/intel/vulkanJason Ekstrand2016-02-181-0/+532