aboutsummaryrefslogtreecommitdiff
path: root/layers/vk_layer_utils.cpp
diff options
context:
space:
mode:
authorTobin Ehlis <tobine@google.com>2016-03-25 11:49:51 -0600
committerTobin Ehlis <tobine@google.com>2016-03-30 08:32:15 -0600
commitbbea4bdeb35d547d14e05874dd46c5ba727e073f (patch)
tree1a83dc1baf72d7533d1bc5029109396fe024afae /layers/vk_layer_utils.cpp
parentfa1c1736c21d297a6794d587124530ecc8450631 (diff)
downloadusermoji-bbea4bdeb35d547d14e05874dd46c5ba727e073f.tar.xz
layers: Update descriptor tracking in core_validation
Old mem_tracker code to record updated storage image/buffers was naive in that is gathered any image/buffer updates to descriptor sets and marked as updated every such image/buffer that was referenced by currently bound sets. In reality sets may be bound but not used. This is captured in the "active_slots" construct of the pipeline. The code here updates tracking for the updated buffers by waiting until a draw cmd for gfx pipe or dispatch cmd for compute pipe, and then gathering the updated images/buffers based on which slots are active. I've multi-purposed validate_draw_state() to now be validate_and_update_draw_state() as it includes recording of the images/buffers from the active_slots, which is then used to mark those as read. Also, that same function is now being called for compute dispatch cmds so "draw" state is not ideal. There is still some rework that needs to be done to improve this situation.
Diffstat (limited to 'layers/vk_layer_utils.cpp')
0 files changed, 0 insertions, 0 deletions