aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/vk
Commit message (Collapse)AuthorAge
* Fix a bunch of memory issues in VulkanGravatar egdaniel2016-04-07
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1867883002 Review URL: https://codereview.chromium.org/1867883002
* Fix vulkan layer callback bugGravatar egdaniel2016-04-07
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1870673002 Review URL: https://codereview.chromium.org/1870673002
* Revert of Track GL buffer state based on unique resource ID (patchset #6 ↵Gravatar mtklein2016-04-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:100001 of https://codereview.chromium.org/1854283004/ ) Reason for revert: Chrome roll's broken, seems to be missing fTarget: https://codereview.chromium.org/1861473005 Original issue's description: > Track GL buffer state based on unique resource ID > > Reworks GrGLGpu to track GL buffer state based on the unique > GrGpuResource ID. This eliminates the need to notify the gpu object > whenever a buffer is deleted. > > This change also allows us to remove the type specifier from GrBuffer. > At this point a buffer is just a chunk of memory, and the type > given at creation time is just a suggestion to the GL backend about > which target to bind to for updates. > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1854283004 > > Committed: https://skia.googlesource.com/skia/+/deacc97bc63513b5eacaf21f858727f6e8b98ce5 TBR=bsalomon@google.com,jvanverth@google.com,cdalton@nvidia.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1870553002
* Track GL buffer state based on unique resource IDGravatar cdalton2016-04-06
| | | | | | | | | | | | | | | | Reworks GrGLGpu to track GL buffer state based on the unique GrGpuResource ID. This eliminates the need to notify the gpu object whenever a buffer is deleted. This change also allows us to remove the type specifier from GrBuffer. At this point a buffer is just a chunk of memory, and the type given at creation time is just a suggestion to the GL backend about which target to bind to for updates. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1854283004 Review URL: https://codereview.chromium.org/1854283004
* Switch uniforms to be descriptor set 0 in VulkanGravatar egdaniel2016-04-06
| | | | | | | | | | This (plus some cleanup) gives us some minor perf gains and as a side effect the perf debug layer no longer complains when we bind certain descriptor sets. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1864303002 Review URL: https://codereview.chromium.org/1864303002
* First pass at VulkanViewerGravatar jvanverth2016-04-06
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1848833005 Review URL: https://codereview.chromium.org/1848833005
* Fix vulkan dual source blendingGravatar egdaniel2016-04-05
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1856283003 Review URL: https://codereview.chromium.org/1856283003
* Implement blit image for copySurface in VulkanGravatar egdaniel2016-04-05
| | | | | | | | | Also allows CopyImage to handle GrRenderTargets which are not textures. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1852413002 Review URL: https://codereview.chromium.org/1852413002
* Update vulkan format features in caps.Gravatar egdaniel2016-04-01
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1847963003 Review URL: https://codereview.chromium.org/1847963003
* Initialize variable to appease compiler warningGravatar egdaniel2016-04-01
| | | | | | | | TBR=bsalomon@google.com BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1854773002 Review URL: https://codereview.chromium.org/1854773002
* Remove ownership parameter from ↵Gravatar kkinnunen2016-04-01
| | | | | | | | | | | | | | | GrResourceProvider::wrapBackendTextureAsRenderTarget Remove ownership parameter from GrResourceProvider::wrapBackendTextureAsRenderTarget. The function leaks the texture id if kAdopt_LifeCycle is passed. There is no public API to access the parameter. BUG=594928 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1842313003 Review URL: https://codereview.chromium.org/1842313003
* Enable dual source blending for VulkanGravatar egdaniel2016-03-30
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1837213003 Review URL: https://codereview.chromium.org/1837213003
* Style bikeshed - remove extraneous whitespaceGravatar halcanary2016-03-29
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1842753002 Review URL: https://codereview.chromium.org/1842753002
* Change VkPipelineStateCahce to use Hash and LRU LList.Gravatar egdaniel2016-03-28
| | | | | | | | | | This simplifies the caching code and forms the base for a caching template that will be easier to use for other objects within Vulkan. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1836863002 Review URL: https://codereview.chromium.org/1836863002
* Use NV glsl shader compiler for VulkanGravatar egdaniel2016-03-28
| | | | | | | | | | | | | | The nvidia direct glsl shader compiler seems to perform much better than using shaderc to compile to spir-v first. This change also includes a change to prefer host cached memory for buffers. Having cached buffers signifcantly improves performance whenever we need to do buffer reads and writes. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1835813003 Review URL: https://codereview.chromium.org/1835813003
* Add WSI functions to GrVkInterfaceGravatar jvanverth2016-03-28
| | | | | | | BUG=skia:5043 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1834903003 Review URL: https://codereview.chromium.org/1834903003
* Consolidate GPU buffer implementationsGravatar cdalton2016-03-25
| | | | | | | | | | | | | | | | Consolidates all the different buffer implementations into a single GrBuffer class. This will allow us to add new buffer types, use DSA in OpenGL, track buffer bindings by unique ID, cache buffers without respect to the type of data they have been used for previously, etc. This change is strictly a refactor; it introduces no change in functionality. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1825393002 Committed: https://skia.googlesource.com/skia/+/8b1bff29675afd25843439eade634a57f68fe16f Review URL: https://codereview.chromium.org/1825393002
* got Vulkan compiling on Linux againGravatar ethannicholas2016-03-25
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1834953003 Review URL: https://codereview.chromium.org/1834953003
* added support for glMinSampleShadingGravatar ethannicholas2016-03-25
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1812223002 Review URL: https://codereview.chromium.org/1812223002
* Revise layer, extension and feature setup for VulkanGravatar jvanverth2016-03-25
| | | | | | | | | | | Moves all the extension setup logic into GrVkBackendContext, and pass extension and feature information to Skia via flags. Also adds version information to GrVkBackendContext. GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1832613003 TBR=bsalomon@google.com Review URL: https://codereview.chromium.org/1832613003
* Revert of Consolidate GPU buffer implementations (patchset #10 id:180001 of ↵Gravatar robertphillips2016-03-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1825393002/ ) Reason for revert: Lots of Android redness Original issue's description: > Consolidate GPU buffer implementations > > Consolidates all the different buffer implementations into a single > GrBuffer class. This will allow us to add new buffer types, use DSA in > OpenGL, track buffer bindings by unique ID, cache buffers without > respect to the type of data they have been used for previously, etc. > This change is strictly a refactor; it introduces no change in > functionality. > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1825393002 > > Committed: https://skia.googlesource.com/skia/+/8b1bff29675afd25843439eade634a57f68fe16f TBR=bsalomon@google.com,egdaniel@google.com,jvanverth@google.com,cdalton@nvidia.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1831133004
* Consolidate GPU buffer implementationsGravatar cdalton2016-03-25
| | | | | | | | | | | | | | Consolidates all the different buffer implementations into a single GrBuffer class. This will allow us to add new buffer types, use DSA in OpenGL, track buffer bindings by unique ID, cache buffers without respect to the type of data they have been used for previously, etc. This change is strictly a refactor; it introduces no change in functionality. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1825393002 Review URL: https://codereview.chromium.org/1825393002
* Remove debug prints in GrVkGpuGravatar egdaniel2016-03-24
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1834663002 Review URL: https://codereview.chromium.org/1834663002
* Set up cache in vulkan to reuse GrVkPrograms (aka VkPipelines)Gravatar egdaniel2016-03-23
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1816153002 Review URL: https://codereview.chromium.org/1816153002
* GrVkGpu initialization cleanup.Gravatar jvanverth2016-03-23
| | | | | | | | | | | Add GrVkBackendContext for GrVkGpu initialization Add missing extension initialization Use device function pointers rather than instance BUG=skia:5116 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1825593002 Review URL: https://codereview.chromium.org/1825593002
* Make max number of vertex attributes be checked dynamicallyGravatar bsalomon2016-03-23
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1822343002 Review URL: https://codereview.chromium.org/1822343002
* Fix borrowed GrVkImage::Resource.Gravatar jvanverth2016-03-22
| | | | | | | | | | | | With the current system, if we wrap a given GrVkTextureInfo*, add a command using it to the command buffer, then delete the texture, the command buffer will unref the GrVkImage::Resource when it's done, which will delete the VkImage and VkDeviceMemory. This subclasses GrVkImage::Resource for those cases, and will not delete the data on an unref. GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1824123002 Review URL: https://codereview.chromium.org/1824123002
* Fully implement onResetContext for VulkanGravatar egdaniel2016-03-22
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1819343002 Review URL: https://codereview.chromium.org/1819343002
* fix release build vulkanGravatar egdaniel2016-03-21
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1819853004 Review URL: https://codereview.chromium.org/1819853004
* Minor fixes to avoid NVPR in Vulkan and provide good GrVkGpu teardown.Gravatar jvanverth2016-03-21
| | | | | | | BUG=skia:5097 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1818093002 Review URL: https://codereview.chromium.org/1818093002
* Add DescriptorPool and set manager to GrVkProgramGravatar egdaniel2016-03-18
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1765923002 Review URL: https://codereview.chromium.org/1765923002
* Use dynamic state from vulkan pipelinesGravatar egdaniel2016-03-18
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1813913002 Review URL: https://codereview.chromium.org/1813913002
* Enable extension support and debug layer.Gravatar jvanverth2016-03-18
| | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1785813002 TBR=bsalomon@google.com Review URL: https://codereview.chromium.org/1785813002
* Implement Vulkan GrBackendObject for textures.Gravatar jvanverth2016-03-18
| | | | | | | BUG=skia:5043 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1808263002 Review URL: https://codereview.chromium.org/1808263002
* Update how we send draws to gpu backend to reduce state setting.Gravatar egdaniel2016-03-17
| | | | | | | | | The main change here is that we pull primitive type off of the vertices, we set the gpu state on gpu once per pipeline/prim proc draw batch, and we create the ProgramDescriptor only for the Cache/ProgramBuilder. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1806983002 Review URL: https://codereview.chromium.org/1806983002
* Create new buffer (if necessary) on vkMapGravatar jvanverth2016-03-16
| | | | | | | | | | The assumption here is that we only read via a Map after we sync the command buffer, and that when writing we don't Map to update, but to overwrite. This appears to be true. GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1774913005 Review URL: https://codereview.chromium.org/1774913005
* Add support for vertex and geometry shader texturesGravatar cdalton2016-03-11
| | | | | | | | | | | Adds a visibility bitfield to GrTextureAccess that controls in which shaders the texture should be accessible. Also adds caps and validation to ensure we don't exceed texture limits. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1782583002 Review URL: https://codereview.chromium.org/1782583002
* Fix 32bit win Vulkan buildGravatar bsalomon2016-03-10
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1781013002 Review URL: https://codereview.chromium.org/1781013002
* Fix some issues for Linux Vulkan buildGravatar jvanverth2016-03-09
| | | | | | | | lifecycle in GrVkGpu was tagged as uninitialized before use, and err in GrVkImage as unused. GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1782453004 Review URL: https://codereview.chromium.org/1782453004
* Don't allow nullptr in texels array params (unless using a transfer buffer).Gravatar bsalomon2016-03-09
| | | | | | | | | Require all levels in writePixels to have a non-nullptr. GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1765633002 Committed: https://skia.googlesource.com/skia/+/8ee78f31b2a29a5f76403755ea17bad9be74a3ec Review URL: https://codereview.chromium.org/1765633002
* Fill out more information in GrVkCapsGravatar egdaniel2016-03-08
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1768083003 Review URL: https://codereview.chromium.org/1768083003
* Buffer fix for VkProgram cachingGravatar jvanverth2016-03-08
| | | | | | | | | | | | When caching VkPrograms, we can end up with situations where we overwrite uniform buffers while they're in use (or being prepared for use) in the command buffer. This fix will address that. This also addresses the rare but similar case of overwriting vertex or index buffers when they're in flight. GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1774963003 Review URL: https://codereview.chromium.org/1774963003
* Add support for 2x2 matricesGravatar cdalton2016-03-07
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1755483002 Review URL: https://codereview.chromium.org/1755483002
* Add "sample locations" feature to GrProcessorGravatar cdalton2016-03-07
| | | | | | | | | | | | Adds a "sample locations" feature to GrProcessor. When enabled, this allows a processor to know inside the shader where all the samples are located. Also adds various infastructure to query, cache, and identify multisample data. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1717393002 Review URL: https://codereview.chromium.org/1717393002
* Fix stall in Vk clearGravatar jvanverth2016-03-04
| | | | | | | TBR=egdaniel@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1765863003 Review URL: https://codereview.chromium.org/1765863003
* Add a cache of GrVkSamplers in GrVkResourceProvider.Gravatar egdaniel2016-03-04
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1765523002 Review URL: https://codereview.chromium.org/1765523002
* Revert of Don't allow nullptr in texels array params (unless using a ↵Gravatar bsalomon2016-03-04
| | | | | | | | | | | | | | | | | | | | | | | transfer buffer). (patchset #3 id:60001 of https://codereview.chromium.org/1765633002/ ) Reason for revert: breaks vk build Original issue's description: > Don't allow nullptr in texels array params (unless using a transfer buffer). > > Require all levels in writePixels to have a non-nullptr. > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1765633002 > > Committed: https://skia.googlesource.com/skia/+/8ee78f31b2a29a5f76403755ea17bad9be74a3ec TBR=jvanverth@google.com,cblume@google.com,cblume@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1760343003
* Don't allow nullptr in texels array params (unless using a transfer buffer).Gravatar bsalomon2016-03-04
| | | | | | | Require all levels in writePixels to have a non-nullptr. GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1765633002 Review URL: https://codereview.chromium.org/1765633002
* Use VkPipelineCaches during VkPipeline creationGravatar jvanverth2016-03-02
| | | | | | | BUG=skia:5037 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1756493002 Review URL: https://codereview.chromium.org/1756493002
* Replace some nullptrs with VK_NULL_HANDLEGravatar jvanverth2016-03-02
| | | | | | | | | Also ensures GrVkRenderPass.h ends with a LF. GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1758003002 NOTRY=true Review URL: https://codereview.chromium.org/1758003002