Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(298)

Side by Side Diff: src/gpu/vk/GrVkGpuCommandBuffer.cpp

Issue 2346553002: Disable ignore discard optimization in Vulkan (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2016 Google Inc. 2 * Copyright 2016 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "GrVkGpuCommandBuffer.h" 8 #include "GrVkGpuCommandBuffer.h"
9 9
10 #include "GrFixedClip.h" 10 #include "GrFixedClip.h"
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 fRenderPass->unref(fGpu); 95 fRenderPass->unref(fGpu);
96 } 96 }
97 97
98 GrGpu* GrVkGpuCommandBuffer::gpu() { return fGpu; } 98 GrGpu* GrVkGpuCommandBuffer::gpu() { return fGpu; }
99 99
100 void GrVkGpuCommandBuffer::end() { 100 void GrVkGpuCommandBuffer::end() {
101 fCommandBuffer->end(fGpu); 101 fCommandBuffer->end(fGpu);
102 } 102 }
103 103
104 void GrVkGpuCommandBuffer::onSubmit(const SkIRect& bounds) { 104 void GrVkGpuCommandBuffer::onSubmit(const SkIRect& bounds) {
105 // TODO: We can't add this optimization yet since many things create a scrat ch texture which
106 // adds the discard immediately, but then don't draw to it right away. This causes the discard
107 // to be ignored and we get yelled at for loading uninitialized data. Howeve r, once MDP lands,
108 // the discard will get reordered with the rest of the draw commands and we can re-enable this.
109 #if 0
105 if (fIsEmpty && !fStartsWithClear) { 110 if (fIsEmpty && !fStartsWithClear) {
106 // We have sumbitted no actual draw commands to the command buffer and w e are not using 111 // We have sumbitted no actual draw commands to the command buffer and w e are not using
107 // the render pass to do a clear so there is no need to submit anything. 112 // the render pass to do a clear so there is no need to submit anything.
108 return; 113 return;
109 } 114 }
115 #endif
110 116
111 // Change layout of our render target so it can be used as the color attachm ent. Currently 117 // Change layout of our render target so it can be used as the color attachm ent. Currently
112 // we don't attach the resolve to the framebuffer so no need to change its l ayout. 118 // we don't attach the resolve to the framebuffer so no need to change its l ayout.
113 GrVkImage* targetImage = fRenderTarget->msaaImage() ? fRenderTarget->msaaIma ge() 119 GrVkImage* targetImage = fRenderTarget->msaaImage() ? fRenderTarget->msaaIma ge()
114 : fRenderTarget; 120 : fRenderTarget;
115 targetImage->setImageLayout(fGpu, 121 targetImage->setImageLayout(fGpu,
116 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, 122 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
117 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, 123 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
118 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, 124 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
119 false); 125 false);
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
445 fGpu->stats()->incNumDraws(); 451 fGpu->stats()->incNumDraws();
446 } while ((nonIdxMesh = iter.next())); 452 } while ((nonIdxMesh = iter.next()));
447 } 453 }
448 454
449 // Technically we don't have to call this here (since there is a safety chec k in 455 // Technically we don't have to call this here (since there is a safety chec k in
450 // pipelineState:setData but this will allow for quicker freeing of resource s if the 456 // pipelineState:setData but this will allow for quicker freeing of resource s if the
451 // pipelineState sits in a cache for a while. 457 // pipelineState sits in a cache for a while.
452 pipelineState->freeTempResources(fGpu); 458 pipelineState->freeTempResources(fGpu);
453 } 459 }
454 460
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698