aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrGpuCommandBuffer.h
Commit message (Collapse)AuthorAge
* Refactor GrPipeline dynamic state.Gravatar Brian Salomon2018-06-26
| | | | | | | | | | | | | | | | | Remove scissor rect from GrPipeline. Draws can specify "fixed dynamic state" which doesn't use the dynamism at all or can specify dynamic state arrays with an entry per GrMesh. When we state other than scissor rects this will allow the caller to use a mix of truly dynamic and fixed dynamic state. So a caller that only has dynamic scissor rects doesn't need to store its remaining unvarying state in an array. Change-Id: I8fcc07eb600c72a26cc712b185755c2116021a8a Reviewed-on: https://skia-review.googlesource.com/137223 Reviewed-by: Chris Dalton <csmartdalton@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Put GrPrimitiveProcessor/GrGeometryProcessor before GrPipeline in param lists.Gravatar Brian Salomon2018-06-25
| | | | | | | | | | | We were inconsistent about which order these were in. Having the processor first will make the parameter order more logical for an upcoming change. Also, the primitive processor comes logically before the pipeline. Change-Id: I3968c5e4e6dff01f9c4ad311eb1795b3c7580ff5 Reviewed-on: https://skia-review.googlesource.com/137228 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Revert "Implement window rectangles in vulkan"Gravatar Jim Van Verth2017-11-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 94c0468b2b4255e3beed81efdcfbf6d9d39e11e4. Reason for revert: <INSERT REASONING HERE> Original change's description: > Implement window rectangles in vulkan > > Bug: skia: > Change-Id: I32c079b90a5503c797dfc073a093f940cd8c550a > Reviewed-on: https://skia-review.googlesource.com/65423 > Commit-Queue: Chris Dalton <csmartdalton@google.com> > Reviewed-by: Greg Daniel <egdaniel@google.com> > Reviewed-by: Brian Salomon <bsalomon@google.com> TBR=egdaniel@google.com,bsalomon@google.com,csmartdalton@google.com Change-Id: I5a90cb57fb5d4bcf8c7e76a5f71a7f16edbaf6be No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/67060 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Implement window rectangles in vulkanGravatar Chris Dalton2017-11-02
| | | | | | | | | Bug: skia: Change-Id: I32c079b90a5503c797dfc073a093f940cd8c550a Reviewed-on: https://skia-review.googlesource.com/65423 Commit-Queue: Chris Dalton <csmartdalton@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Remove deferred upload types from GrDrawOp.h.Gravatar Brian Salomon2017-10-30
| | | | | | | | | This is motivated by exposing these to an upcoming atlas text rendering API that doesn't use ops. Change-Id: Id034dd43d13bc96fe1350fc6d8f699477bb74a05 Reviewed-on: https://skia-review.googlesource.com/65060 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Remove origin field from GrSurface (take 2)Gravatar Robert Phillips2017-08-29
| | | | | | | | | | | | | This mainly consists of rm origin from GrSurface and the wrapBackEnd* methods and then re-adding an explicit origin parameter to all the GrGpu methods that need it. TBR=bsalomon@google.com Change-Id: I4248b2a4749ef844da4233ce53b0dc504bc9eb74 Reviewed-on: https://skia-review.googlesource.com/30280 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Store discard request on the opList and remove GrDiscardOp (take 3)Gravatar Robert Phillips2017-08-29
| | | | | | | | Change-Id: Ided58e0110b0b4e611ab65f46c18a6ae2b85f1bc Reviewed-on: https://skia-review.googlesource.com/39340 Reviewed-by: Robert Phillips <robertphillips@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Revert "Store discard request on the opList and remove GrDiscardOp (take 2)"Gravatar Robert Phillips2017-08-25
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 9b0b32fda4871776eb9afdf9553e523e5c28aa63. Reason for revert: Android_Vulkan Gold images are broken Original change's description: > Store discard request on the opList and remove GrDiscardOp (take 2) > > Change-Id: I2f1bd6f8547895cc8d66cfde42d7d890441d198e > Reviewed-on: https://skia-review.googlesource.com/33460 > Reviewed-by: Greg Daniel <egdaniel@google.com> > Commit-Queue: Robert Phillips <robertphillips@google.com> TBR=egdaniel@google.com,robertphillips@google.com Change-Id: I1470d88c2407864da8b6ebdc119c8c2466a2a6c6 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/39000 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Store discard request on the opList and remove GrDiscardOp (take 2)Gravatar Robert Phillips2017-08-25
| | | | | | | Change-Id: I2f1bd6f8547895cc8d66cfde42d7d890441d198e Reviewed-on: https://skia-review.googlesource.com/33460 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Make Copy Ops to go through GpuCommandBuffer instead of straigt to GPU.Gravatar Greg Daniel2017-08-24
| | | | | | | | Bug: skia: Change-Id: I4eae4507e07278997e26419e94586eef0780c423 Reviewed-on: https://skia-review.googlesource.com/38361 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Revert "Store discard request on the opList and remove GrDiscardOp"Gravatar Robert Phillips2017-08-09
| | | | | | | | | | | | | | | | | | | | | | | This reverts commit b681a0f1b0acebe36130fd463d14016d48295b97. Reason for revert: Seems to be messing up some MacMini & Nexus7 bots Original change's description: > Store discard request on the opList and remove GrDiscardOp > > Change-Id: Ic1f76bb91c16b23df1fe71c07a4d5ad5abf1dc26 > Reviewed-on: https://skia-review.googlesource.com/32640 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Robert Phillips <robertphillips@google.com> TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com Change-Id: I8a89fae7bb11791bd023d7444a074bb34d006fd0 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/32704 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Store discard request on the opList and remove GrDiscardOpGravatar Robert Phillips2017-08-09
| | | | | | | Change-Id: Ic1f76bb91c16b23df1fe71c07a4d5ad5abf1dc26 Reviewed-on: https://skia-review.googlesource.com/32640 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Store GrRenderTarget in GrGpuCommandBufferGravatar Robert Phillips2017-08-09
| | | | | | | Change-Id: I545d53ffb5f9d450b87a360516b03bdd47232a70 Reviewed-on: https://skia-review.googlesource.com/32460 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Add explicit clear of stencil buffer before opLists that use themGravatar Robert Phillips2017-08-08
| | | | | | | | Change-Id: I9e2468e1331c6593dbc6da3ad510f08d1c589e8d Reviewed-on: https://skia-review.googlesource.com/32041 Commit-Queue: Stan Iliev <stani@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Add GrDebugMarkerOpGravatar Robert Phillips2017-08-08
| | | | | | | Change-Id: I948838dea13d2f36194ca1043ab37e72759794e0 Reviewed-on: https://skia-review.googlesource.com/31740 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Make GrGpuCommandBuffer's methods take a GrRenderTargetProxy (rather than a ↵Gravatar Robert Phillips2017-07-28
| | | | | | | | | | | | | | | | | | | | GrRenderTarget) In https://skia-review.googlesource.com/c/26363/ (Remove origin field from GrSurface) I just passed an extra GrSurfaceOrigin parameter to all these methods. Besides being verbose this also led to the "discard" method having an origin (to support the GrVkGpuCommandBuffer). It think this approach is better and is plausible if the GrGpuCommandBuffer is viewed as an intermediary between the GrProxy-based Ops and the Gpu. In isolation this CL doesn't really show why we want to percolate the Proxy down. Once GrSurface no longer has an origin a lot of the GrGpu methods need it passed in explicitly. By having the GrGpuCommandBuffer get the proxy it can then pass the origin to GrGpu and removes a layer of functions with an extra origin parameter. Change-Id: Ie223fdee930171a32a5923155a0322e9a9c2aaa9 Reviewed-on: https://skia-review.googlesource.com/27980 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Introduce dynamic pipeline stateGravatar Chris Dalton2017-06-07
| | | | | | | | | | | | | | Adds a DynamicState struct to GrPipeline that has a field for the scissor rect. Eventually this should become the only way to specify a scissor rectangle and may grow to contain more fields. Adds an array of DynamicStates to GrGpuCommandBuffer::draw and implements support in GL and Vulkan. Bug: skia: Change-Id: If5aebbf9da5d192acf7e68e7def4674ffc7ec310 Reviewed-on: https://skia-review.googlesource.com/18510 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Convert GrMesh back to a classGravatar Chris Dalton2017-05-15
| | | | | | | | | | | Specific methods that limit the data to valid configurations are better than a runtime mega-assert. Bug: skia: Change-Id: Ie15f2dc79659e44cfaddd16eb474795b110fda73 Reviewed-on: https://skia-review.googlesource.com/16577 Commit-Queue: Chris Dalton <csmartdalton@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Convert GrMesh to a structGravatar Chris Dalton2017-05-03
| | | | | | | | | | | | | Converts GrMesh to a struct and changes the names/semantics of its fields to be more inline with their GL counterparts. Also renames the "instancing" feature to "pattern", to avoid ambiguity with hardware instancing. Bug: skia: Change-Id: Ia0999d4f9c83b5dd31f81b9bf4f36ed9abd26286 Reviewed-on: https://skia-review.googlesource.com/15157 Commit-Queue: Chris Dalton <csmartdalton@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Init Command buffer on inlineUploads in VulkanGravatar Greg Daniel2017-03-22
| | | | | | | | | | | | When the first thing we do in a GrGpuCommandBuffer is do an inlineUpload, we need to make sure we've initialized the command buffer in Vulkan. BUG=skia: Change-Id: Iabee770864a61697c55fb1df18b31862d8df3cdc Reviewed-on: https://skia-review.googlesource.com/9970 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Misc batch->op cleanup Part 1 of 2Gravatar Brian Salomon2016-12-21
| | | | | | | Change-Id: I80f951976558a284e55386e0a368f08bd835d8ca Reviewed-on: https://skia-review.googlesource.com/6359 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* move src/gpu/batches -> src/gpu/opsGravatar Brian Salomon2016-12-16
| | | | | | | Change-Id: I6410eae41f051ce38bef6f38d670924c3483c325 Reviewed-on: https://skia-review.googlesource.com/6163 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Rename GrBatchFlushState to GrOpFlushStateGravatar Brian Salomon2016-12-07
| | | | | | | Change-Id: I1a8052c61d7624929caf45ba44e2a465cd0dc1c2 Reviewed-on: https://skia-review.googlesource.com/5649 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Rename GrDrawBatch->GrDrawOpGravatar Brian Salomon2016-12-01
| | | | | | | Change-Id: I18f520924b8a2548566fd61dbea4e3e12bd253dd Reviewed-on: https://skia-review.googlesource.com/5411 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Make GrGpuCommandBuffer infer its render target from first drawGravatar Brian Salomon2016-11-30
| | | | | | | | | This is a temporary workaround to allow removal of GrBatch::renderTarget(). Change-Id: Ic14710a369802064cf6446e8191a98ea3595556d Reviewed-on: https://skia-review.googlesource.com/5342 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Support inline uploads in VulkanGravatar Greg Daniel2016-10-19
| | | | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3586 Change-Id: I5913c336aa33851d6d2e80d9638df2efa8ac0400 Reviewed-on: https://skia-review.googlesource.com/3586 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Refactor GrVkGpuCommandBuffer to handle multiple GrVkCommandBuffers.Gravatar Greg Daniel2016-10-18
| | | | | | | | | | | | | | | | | | | This CL is a pre CL to fix some issues where we will need a GpuCB to internally have multiple commandbuffers that it submits. Because of this, I need to move the bounds calculations down into the VkGpuCB since we need to know the bounds for each sub commandbuffer and not just entire set of commands. In part this is good since GL actually never needed the calculations so it saves some work there. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3142 Change-Id: Ied918765da3630aa6d87e29ccce6c883b96c4ead Reviewed-on: https://skia-review.googlesource.com/3142 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Don't pass in RT to individual Gpu CommandBuffer callsGravatar Greg Daniel2016-10-12
| | | | | | | | | | | | | | | | The Vulkan backend already stored a GrVkRT, but was inconsistent in sometimes using the stored value and sometimes the passed in value (though they should be the same). This just cleans up the code so that everyone uses a stored RT. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3126 Change-Id: I571de4bfb1da612d61171321d5224a9a19d8e545 Reviewed-on: https://skia-review.googlesource.com/3126 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Define clear regions in terms of GrFixedClipGravatar csmartdalton2016-08-31
| | | | | | | | | | | Updates clear APIs to take GrFixedClip instead of a rectangle. This will allow us to use window rectangles with clears. Removes stencil knobs from GrFixedClip. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2262473003 Review-Url: https://codereview.chromium.org/2262473003
* Start using GrGpuCommandBuffer in GrDrawTarget.Gravatar egdaniel2016-06-23
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2052263003 Review-Url: https://codereview.chromium.org/2078483002
* Add GpuCommandBuffer support.Gravatar egdaniel2016-06-08
Currently this is not actually hooked into the system. To give some context, in a follow up CL I'll add this to GrDrawTarget. For this I will move the gpu onDraw command to the GpuCommandBuffer as well. For GL this will end up just being a pass through to a non virtual draw(...) on GrGLGpu, and for vulkan it will mostly do what it currently does but adding commands to the secondary command buffer instead. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2038583002 Review-Url: https://codereview.chromium.org/2038583002