Commit Graph

209 Commits

Author SHA1 Message Date
Brian Osman
aa1ab8905e Revert "Add GrExternalTextureData and SkCrossContextImageData"
This reverts commit 9ad1f92e2f.

Reason for revert: Breaking lots of bots

Original change's description:
> Add GrExternalTextureData and SkCrossContextImageData
> 
> GrExternalTextureData is an API for exporting the backend-specific
> information about a texture in a type-safe way, and without pointing
> into the GrTexture. The new detachBackendTexture API lets us release
> ownership of a texture to the client.
> 
> SkCrossContextImageData is the public API that lets clients upload
> textures on one thread/GrContext, then safely transfer ownership to
> another thread and GrContext for rendering.
> 
> Only GL is implemented/supported right now. Vulkan support requires
> that we add thread-safe memory pools, or otherwise transfer the
> actual memory block containing the texture to the new context.
> 
> BUG=skia:
> 
> Change-Id: I784a3a74be69807df038c7d192eaed002c7e45ca
> Reviewed-on: https://skia-review.googlesource.com/8529
> Commit-Queue: Brian Osman <brianosman@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> 

TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com,brianosman@google.com,reviews@skia.org,chinmaygarde@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Change-Id: If27d1f4c3a169efb6533170f67a172664c0fe8ce
Reviewed-on: https://skia-review.googlesource.com/8955
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-02-24 17:28:03 +00:00
Brian Osman
9ad1f92e2f Add GrExternalTextureData and SkCrossContextImageData
GrExternalTextureData is an API for exporting the backend-specific
information about a texture in a type-safe way, and without pointing
into the GrTexture. The new detachBackendTexture API lets us release
ownership of a texture to the client.

SkCrossContextImageData is the public API that lets clients upload
textures on one thread/GrContext, then safely transfer ownership to
another thread and GrContext for rendering.

Only GL is implemented/supported right now. Vulkan support requires
that we add thread-safe memory pools, or otherwise transfer the
actual memory block containing the texture to the new context.

BUG=skia:

Change-Id: I784a3a74be69807df038c7d192eaed002c7e45ca
Reviewed-on: https://skia-review.googlesource.com/8529
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-02-24 16:09:33 +00:00
Mike Reed
22eb2f1aa0 remove guard for SkImageGenerator api
BUG=skia:

Change-Id: I0c01fbf935be5d933aa2ef67a0fb2edba4941fa7
Reviewed-on: https://skia-review.googlesource.com/8835
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2017-02-22 04:31:18 +00:00
Mike Reed
185130c643 return and take SkImageGenerator as unique_ptr
BUG=skia:

Change-Id: I4bc11042dd1dbf1eabd40af206027bc65acc3186
Reviewed-on: https://skia-review.googlesource.com/8444
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2017-02-15 20:51:28 +00:00
Matt Sarett
9df70bb74d Picture backed images must have a bit depth and color space
Enforce that picture backed images created by the public API
must have a non-null SkColorSpace.

SkPictureShader uses a private call to get around this restriction.

BUG=skia:

Change-Id: I2fc11a8ffe583035d09e83abf40b827fbf575321
Reviewed-on: https://skia-review.googlesource.com/8415
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-02-14 21:32:10 +00:00
Brian Osman
e8827d254f Address feedback on makeTextureImage
BUG=skia:

Whitespace change in public API.

Change-Id: Iaab7b0ed6b157b1c246eae5f0f0440b0ae4d72ab
Reviewed-on: https://skia-review.googlesource.com/8130
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-02-07 18:28:37 +00:00
Brian Osman
041f7dfc57 Bring back SkImage::makeTextureImage
Ensures that an image is GPU backed on the passed-in GrContxt. The new
version requires a destination color space (intended usage of the image),
so we can make a proper decision about decoded format.

This reverts commit d263413a2a.

BUG=skia:

Change-Id: Ibccddbafc301779559592045ed5a5fa9264e7432
Reviewed-on: https://skia-review.googlesource.com/8116
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-02-07 16:58:07 +00:00
Robert Phillips
3390e15269 Expand SkImage::getTextureHandle call
AFAICT cc/output/gl_renderer.cc only calls SkImage:getTexture to determine the origin of the backing GrTexture. What do y'all think of this CL as a means of removing that call to getTexture?

One alternative would be to add a new entry point like:

bool SkImage::getBackendTextureDesc(GrBackendTextureDesc* desc) const;

which fills in the entire desc and returns whether the image is texture backed.

Change-Id: Idd302c0a11d69ad08e0100bcf546b3bbaa7cf27e
Reviewed-on: https://skia-review.googlesource.com/7788
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-02-01 16:04:41 +00:00
Brian Osman
b92234a321 Revert "Remove SkImage::MakeTextureFromPixmap"
This reverts commit 8ccbbb455c.

Reason for revert: Chrome perf regression

BUG=chrome:684483

Original change's description:
> Remove SkImage::MakeTextureFromPixmap
> 
> Another step towards reducing the number of texture upload paths.
> 
> BUG=skia:
> 
> Change-Id: Ica185e7334f52dc9ebf87e21fe6f60589ef87bb3
> Reviewed-on: https://skia-review.googlesource.com/7346
> Commit-Queue: Brian Osman <brianosman@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> 

TBR=bsalomon@google.com,robertphillips@google.com,brianosman@google.com,cblume@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
BUG=skia:

Change-Id: I8bf6970b764018f3ebcac8123e4d6a8ad05317ff
Reviewed-on: https://skia-review.googlesource.com/7484
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2017-01-25 14:54:35 +00:00
Brian Osman
8ccbbb455c Remove SkImage::MakeTextureFromPixmap
Another step towards reducing the number of texture upload paths.

BUG=skia:

Change-Id: Ica185e7334f52dc9ebf87e21fe6f60589ef87bb3
Reviewed-on: https://skia-review.googlesource.com/7346
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-01-20 20:26:59 +00:00
Hal Canary
dc11f9810c Clean up unused SK_SUPPORT_LEGACY_IMAGE_ENCODER_CLASS code
Approval from https://review.skia.org/5006
TBR=reed@google.com

Change-Id: Ie630a3f45a830c8c2dc80a30e759d9481b8d60a5
Reviewed-on: https://skia-review.googlesource.com/5775
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2017-01-10 18:01:39 +00:00
Matt Sarett
f9436b8235 Allow constrained and unconstrained picture-images
BUG=skia:

Change-Id: Id9b7b2c82c634fec50f9a57f4b59ce0c02e0706a
Reviewed-on: https://skia-review.googlesource.com/6818
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2017-01-09 21:40:27 +00:00
Matt Sarett
e94255d456 Specify bit depth and color space in SkImage::MakeFromPicture()
BUG=skia:

Change-Id: I1d2a2b1f97557fc3e7ca6c2bdad6329f7760dbd2
Reviewed-on: https://skia-review.googlesource.com/6685
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2017-01-09 18:14:06 +00:00
Mike Reed
d5733c70df remove SK_SUPPORT_LEGACY_PREROLL code
BUG=skia:

Change-Id: I608a3250882708cefc37747b462d5fa08b1e28be
Reviewed-on: https://skia-review.googlesource.com/6349
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2016-12-22 14:12:32 +00:00
Brian Osman
138ea97c1a Add color space to picture image as a creation parameter
This gives a picture image a preferred "native" color space, which
facilitates caching and other things.

BUG=skia:

Change-Id: I95988c14d17f96d7d870b3d1c3b723c36e2c170d
Reviewed-on: https://skia-review.googlesource.com/6158
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Brian Osman <brianosman@google.com>
2016-12-16 18:09:02 +00:00
Mike Reed
9864257182 hide deprecated SkImage::preroll
BUG=skia:

Change-Id: Id7369b0c3b4216f7e040e51c2c80520f20e7168a
Reviewed-on: https://skia-review.googlesource.com/6184
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2016-12-16 17:11:39 +00:00
Brian Osman
d263413a2a Remove SkImage::makeTextureImage
No one (other than test code) was using this API, and it lacks the context
to do the right thing. Specifically, if this forces a decode of an encoded
image, we don't know the intended use (re: color spaces) to determine how
we should decode.

BUG=skia:

Change-Id: I6ff700b3a5adce8257f35c5e3dd5ba557b2a3219
Reviewed-on: https://skia-review.googlesource.com/5614
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2016-12-09 19:34:47 +00:00
Herb Derby
252b72410b Revert "SkImageEncoder::* going away"
Breaks 5 compiles on google3.

This reverts commit 3489b2b727.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> SkImageEncoder::* going away
> 
> Approval from https://review.skia.org/5006
> TBR=reed@google.com
> 
> Change-Id: Ib5fb1b624594598e2316f9247069ecd207d7a974
> Reviewed-on: https://skia-review.googlesource.com/5751
> Reviewed-by: Hal Canary <halcanary@google.com>
> Commit-Queue: Hal Canary <halcanary@google.com>
> 

TBR=halcanary@google.com,reed@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I0c0b863056c90435374769e85fb08c1b2f5113a2
Reviewed-on: https://skia-review.googlesource.com/5760
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2016-12-09 17:07:18 +00:00
Hal Canary
3489b2b727 SkImageEncoder::* going away
Approval from https://review.skia.org/5006
TBR=reed@google.com

Change-Id: Ib5fb1b624594598e2316f9247069ecd207d7a974
Reviewed-on: https://skia-review.googlesource.com/5751
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2016-12-09 16:13:42 +00:00
Hal Canary
b88ca7eca4 Revert "SkImageEncoder::* going away"
This reverts commit d7e16661bb.
Reason for revert: breaking g3
NOTRY=true
Change-Id: I56d53adca64a94b4f66dd0539634804a96e92ddf
Reviewed-on: https://skia-review.googlesource.com/5672
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Hal Canary <halcanary@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2016-12-07 16:50:32 +00:00
Hal Canary
d7e16661bb SkImageEncoder::* going away
Approval from https://review.skia.org/5006
TBR=reed@google.com

Change-Id: I43d1a24fa3e924b3c24b224f2451ab990b440dc8
Reviewed-on: https://skia-review.googlesource.com/5413
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2016-12-07 16:02:33 +00:00
Hal Canary
db6830162e SkImageEncoder: simplify API
(re-land 248ff02 & 2cb6cb7, with changes)

  - Hide SkImageEncoder class in private header.
  - SkImageEncoder::Type becomes SkEncodedImageFormat
  - SkEncodedFormat becomes SkEncodedImageFormat
  - SkImageEncoder static functions replaced with
    single function EncodeImage()
  - utility wrappers for EncodeImage() are in
    sk_tool_utils.h

TODO: remove link-time registration mechanism.
TODO: clean up clients use of API and flip the flag.
TODO: implement EncodeImage() in chromeium/skia/ext

Change-Id: I47d451e50be4d5c6c130869c7fa7c2857243d9f0
Reviewed-on: https://skia-review.googlesource.com/4909
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Reviewed-on: https://skia-review.googlesource.com/5186
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Hal Canary <halcanary@google.com>
2016-11-23 16:40:32 +00:00
Hal Canary
a2b4bdce8c Revert 248ff023 & 2cb6cb72
Revert "SkImageEncoder: simplify API"
This reverts commit 248ff02331.
Revert "Fix bug: can't convert nullptr -> bool"
This reverts commit 2cb6cb7218.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5151
NOTRY=true

Change-Id: I5f6414392d6545f74db0b5bb50608d04f053a8ec
Reviewed-on: https://skia-review.googlesource.com/5151
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Hal Canary <halcanary@google.com>
2016-11-22 21:23:51 +00:00
Hal Canary
248ff02331 SkImageEncoder: simplify API
- Hide SkImageEncoder class in private header.
  - SkImageEncoder::Type becomes SkEncodedImageFormat
  - SkEncodedFormat becomes SkEncodedImageFormat
  - SkImageEncoder static functions replaced with
    single function EncodeImage()
  - utility wrappers for EncodeImage() are in
    sk_tool_utils.h

TODO: remove link-time registration mechanism.
TODO: clean up clients use of API and flip the flag.
TODO: implement EncodeImage() in chromeium/skia/ext

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4909

Change-Id: Ib48b31fdc05cf23cda7f56ebfd67c841c149ce70
Reviewed-on: https://skia-review.googlesource.com/4909
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2016-11-22 18:25:55 +00:00
Brian Osman
7b8400dad2 Rename SkSourceGammaTreatment to SkDestinationSurfaceColorMode
This is much more explicit about what that type represents (are we in
legacy mode or not), which also makes it suitable for other (upcoming)
usage.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4529

Change-Id: Iacb397c34e7765f1ca86c0195bc622b2be4d9acf
Reviewed-on: https://skia-review.googlesource.com/4529
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2016-11-09 01:05:07 +00:00
Leon Scroggins
294c1c41ed Revert "Delete SkImage::encode(Type)"
This reverts commit e48b4c550d.

Reason for revert: This method is used in Google3. See
https://test.corp.google.com/ui#id=OCL:138505330:BASE:138505351:1478611655214:39a02f0d

Original change's description:
> Delete SkImage::encode(Type)
> 
> This doesn't appear to be used (fingers crossed).
> 
> We're not ready to support color correct encodes (and tagging with
> color spaces) for all of the formats included in SkImageEncoder::Type.
> 
> I think it's good to restrict this for now.
> 
> BUG=skia:
> 
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4535
> 
> Change-Id: I73000f3d7bff1af153786d766531a2cbc8c5b77a
> Reviewed-on: https://skia-review.googlesource.com/4535
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Matt Sarett <msarett@google.com>
> 

TBR=msarett@google.com,brianosman@google.com,reed@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I6fb880f10dcba7837647e9b5cabbc8cc2b8366f6
Reviewed-on: https://skia-review.googlesource.com/4538
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
2016-11-08 14:29:59 +00:00
Matt Sarett
e48b4c550d Delete SkImage::encode(Type)
This doesn't appear to be used (fingers crossed).

We're not ready to support color correct encodes (and tagging with
color spaces) for all of the formats included in SkImageEncoder::Type.

I think it's good to restrict this for now.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4535

Change-Id: I73000f3d7bff1af153786d766531a2cbc8c5b77a
Reviewed-on: https://skia-review.googlesource.com/4535
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
2016-11-08 13:16:19 +00:00
Mike Reed
09d9435835 remove lots of legacy flags
BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4209

Change-Id: I49ae36a9b2bb51a6470638d3264923ff4a4dea0a
Reviewed-on: https://skia-review.googlesource.com/4209
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2016-10-31 19:35:15 +00:00
reed
9e2ed83f9b add isAlphaOnly() query
BUG=skia:5904
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2461773002

TBR=

Review-Url: https://codereview.chromium.org/2461773002
2016-10-31 05:27:28 -07:00
Mike Reed
958788ab46 remove 4 legacy flags (clients already updated)
BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3785

Change-Id: I187e50e09ed7a3316719fae51af770259928fdf9
Reviewed-on: https://skia-review.googlesource.com/3785
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2016-10-20 21:08:50 +00:00
Brian Osman
6c15cc7e9d Modify deferred texture image API's handling of gamma
This tries to match the behavior you would see if you rendered directly to
a canvas without going through this round-trip. Specifically, mips are
built in the same way that they would be according to the context's
internal logic. To make things clearer, the user passes in the color space
of the destination surface, not our (internal) enum.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3526

Change-Id: If8c61500d34ae712227da0284f3a80cacf84113a
Reviewed-on: https://skia-review.googlesource.com/3526
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2016-10-17 20:48:55 +00:00
cblume
33e0cb5e7f Store mipmap levels in deferred texture image
This is a follow-up to https://codereview.chromium.org/2115023002/ and
https://codereview.chromium.org/2034933003/ which were reverted due to
an access violation and a memory leak, respectively.

When creating the deferred texture image, detect if using medium / high
quality. If so, generate and store mipmaps in the deferred texture
image.

When creating a texture from that be sure to read it back out.

BUG=578304
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2242883004

Review-Url: https://codereview.chromium.org/2242883004
2016-08-30 12:09:23 -07:00
brianosman
69c166d2ce Add alphaType() to SkImage
Keep isOpaque as a convenience method -- many places really only need to
know that for optimization purposes (SrcOver -> Src, etc...).

In all the places where we pull data back out or convert to another
object and need to supply an SkImageInfo, we can avoid losing information
about premulness.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2250663002

Review-Url: https://codereview.chromium.org/2250663002
2016-08-17 14:01:05 -07:00
halcanary
e9d55c57a6 Revert of Store mipmap levels in deferred texture image (patchset #11 id:200001 of https://codereview.chromium.org/2115023002/ )
Reason for revert:
speculative revert: android dm crashes

Original issue's description:
> Store mipmap levels in deferred texture image
>
> This is a follow-up to https://codereview.chromium.org/2034933003/ which
> was reverted due to a memory leak.
>
> When creating the deferred texture image, detect if using medium / high
> quality. If so, generate and store mipmaps in the deferred texture
> image.
>
> When creating a texture from that be sure to read it back out.
>
> BUG=578304
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2115023002
>
> Committed: https://skia.googlesource.com/skia/+/d6113140f7ae8996f679ac6698a60fb8c1386da3

TBR=brianosman@google.com,bsalomon@google.com,ericrk@chromium.org,cblume@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=578304

Review-Url: https://codereview.chromium.org/2227323002
2016-08-09 17:46:25 -07:00
cblume
d6113140f7 Store mipmap levels in deferred texture image
This is a follow-up to https://codereview.chromium.org/2034933003/ which
was reverted due to a memory leak.

When creating the deferred texture image, detect if using medium / high
quality. If so, generate and store mipmaps in the deferred texture
image.

When creating a texture from that be sure to read it back out.

BUG=578304
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2115023002

Review-Url: https://codereview.chromium.org/2115023002
2016-08-09 13:45:56 -07:00
brianosman
dddbe380b0 Adding an SkColorSpace to SkImage_Gpu
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2165703003

Review-Url: https://codereview.chromium.org/2165703003
2016-07-20 13:55:39 -07:00
brianosman
9ecaa1d9f0 Remove unused MakeFromTextureCopy API
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2165803002

Review-Url: https://codereview.chromium.org/2165803002
2016-07-19 14:16:49 -07:00
bsalomon
634b430080 Add a function to convert a texture backed SkImage to raster.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2147493004

Review-Url: https://codereview.chromium.org/2147493004
2016-07-12 18:11:17 -07:00
brianosman
6efeda4838 Revert of Store mipmap levels in deferred texture image (patchset #15 id:280001 of https://codereview.chromium.org/2034933003/ )
Reason for revert:
Crashes on a few different bots (including ASAN). Examples:

https://build.chromium.org/p/client.skia.android/builders/Test-Android-GCC-Nexus7-GPU-Tegra3-Arm7-Release/builds/6324
https://build.chromium.org/p/client.skia/builders/Test-iOS-Clang-iPad4-GPU-SGX554-Arm7-Debug/builds/5400
https://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-Golo-GPU-GT610-x86_64-Debug-ASAN/builds/3539

Original issue's description:
> Store mipmap levels in deferred texture image
>
> When creating the deferred texture image, detect if using medium / high
> quality. If so, generate and store mipmaps in the deferred texture
> image.
>
> When creating a texture from that be sure to read it back out.
>
> BUG=578304
> R=bsalomon@google.com
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2034933003
>
> Committed: https://skia.googlesource.com/skia/+/b3105190a6e02d37f1d7f07a3a8bdd368ec7f157

TBR=bsalomon@google.com,ericrk@chromium.org,cblume@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=578304

Review-Url: https://codereview.chromium.org/2083393002
2016-06-22 07:10:06 -07:00
cblume
b3105190a6 Store mipmap levels in deferred texture image
When creating the deferred texture image, detect if using medium / high
quality. If so, generate and store mipmaps in the deferred texture
image.

When creating a texture from that be sure to read it back out.

BUG=578304
R=bsalomon@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2034933003

Review-Url: https://codereview.chromium.org/2034933003
2016-06-21 13:43:13 -07:00
ericrk
b4da01d8f7 Add prescale option to deferred params
Currently, Skia always uploads GPU textures at full resolution. This
change allows us to pass a pre-scale mip level to the
deferred texture image logic, which causes us to pre-scale the image
to the given mip level, and upload that mip level instead of the full
image.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2007113008

Review-Url: https://codereview.chromium.org/2007113008
2016-06-13 11:18:14 -07:00
jbauman
b445a57e6c Add NV12 texture conversion support.
If textures 1 and 2 passed into MakeFromYUVTexturesCopy are the same,
then treat the input as NV12 and sample from the g component of texture
2.

BUG=skia:5209
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2016593002

Review-Url: https://codereview.chromium.org/2016593002
2016-06-09 13:24:48 -07:00
cblume
186d2d430b Plumbing mipmaps to the point of creation.
When creating a DeferredTextureImage we may create mipmaps.
Those mipmaps need to then be passed along for when the texture is
actually created.

R=bsalomon@google.com
BUG=578304
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2031273002

Review-Url: https://codereview.chromium.org/2031273002
2016-06-03 11:17:42 -07:00
senorblanco
5878dbdf1b Image filters: implement SkImage::makeWithFilter().
This API provides a way to directly filter a subregion of an SkImage
(usually texture-backed), and returns an SkImage which may include
extra padding, along with a size to indicate the active region.

GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1964043002

Review-Url: https://codereview.chromium.org/1964043002
2016-05-19 14:50:29 -07:00
reed
2a04104ba0 exernalize imagefactory guard
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1897453002

TBR=
CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac-Clang-x86_64-Release-CMake-Trybot

Review URL: https://codereview.chromium.org/1897453002
2016-04-15 10:56:52 -07:00
bsalomon
41b952c296 Add deferred texture upload API.
Performs thread-safe decoding of SkImage in order to later create a texture-backed SkImage.

The client allocates storage for the data.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1776693002

Review URL: https://codereview.chromium.org/1776693002
2016-03-11 06:46:33 -08:00
reed
7fb4f8bd03 Revert "Revert of add Make variations to return SkImage by sk_sp (patchset #5 id:80001 of https://codereview.chromium.org/1778393002/ )"
Fix was to call get() instead of release() when passing the sp to a bare-ptr method.

This reverts commit e683c56115.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1789443002

TBR=

Review URL: https://codereview.chromium.org/1789443002
2016-03-11 04:33:52 -08:00
robertphillips
e683c56115 Revert of add Make variations to return SkImage by sk_sp (patchset #5 id:80001 of https://codereview.chromium.org/1778393002/ )
Reason for revert:
Experimental revert to try to clear up ASAN failures

Original issue's description:
> add Make variations to return SkImage by sk_sp
>
> some internal call-sites update, but not. Will follow-up in future to complete that.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1778393002
>
> Committed: https://skia.googlesource.com/skia/+/bd73ffb83022f1f6b1997e2a91c049949e88a8a2

TBR=fmalita@chromium.org,bsalomon@google.com,reed@google.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/1783063002
2016-03-10 16:18:46 -08:00
reed
bd73ffb830 add Make variations to return SkImage by sk_sp
some internal call-sites update, but not. Will follow-up in future to complete that.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1778393002

Review URL: https://codereview.chromium.org/1778393002
2016-03-10 12:45:18 -08:00
bsalomon
0d996868c3 Restore SkImage::NewTextureFromPixmap changes.
6ceeebd37a contained the fix for the issues that prompted the revert (index8 bitmaps weren't drawing).

Revert "TBR=robertphillips@google.com"

This reverts commit 236640872f.

TBR=
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1775263004

Review URL: https://codereview.chromium.org/1775263004
2016-03-09 18:44:43 -08:00
bsalomon
236640872f TBR=robertphillips@google.com
Revert "Add SkImage::NewTextureFromPixmap"

This reverts commit 045afea979.

Revert "Fix Mac bots because of failing readback of 565"

This reverts commit e344b26a7d.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1777863003

Review URL: https://codereview.chromium.org/1777863003
2016-03-09 14:50:15 -08:00
reed
5671c5b912 SkImage now has makeShader to return sk_sp
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1785473002

Review URL: https://codereview.chromium.org/1785473002
2016-03-09 14:47:34 -08:00
reed
6ceeebd37a unify peekPixels around pixmap parameter
requires this chrome CL to land first
https://codereview.chromium.org/1775393003/

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1784563002

Review URL: https://codereview.chromium.org/1784563002
2016-03-09 14:26:26 -08:00
bsalomon
045afea979 Add SkImage::NewTextureFromPixmap
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1776913003

Review URL: https://codereview.chromium.org/1776913003
2016-03-09 11:31:18 -08:00
bsalomon
84a4e5a8d6 Remove internal calls to SkImage::getTexture
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1744243002

Review URL: https://codereview.chromium.org/1744243002
2016-02-29 11:41:52 -08:00
Brian Salomon
de3a726ad3 Make SkImage::readYUV8Planes const
TBR=reed@google.com

GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1660393003
BUG=skia:

Review URL: https://codereview.chromium.org/1660393003 .
2016-02-03 17:09:00 -05:00
bsalomon
f267c1efe7 Add ability to extract YUV planes from SkImage
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1513393002

Review URL: https://codereview.chromium.org/1513393002
2016-02-01 13:16:14 -08:00
bsalomon
8e74f80ca1 Add SkImage factory method that forces image to be resolved to a texture.
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1631053003

Review URL: https://codereview.chromium.org/1631053003
2016-01-30 10:01:40 -08:00
reed
22471ed134 remove SkImage::applyFilter() -- unused, can always re-add later
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1573653002

Review URL: https://codereview.chromium.org/1573653002
2016-01-08 17:21:47 -08:00
halcanary
6b28017781 SkPixelSerializer: support indexed pixels
By taking a SkPixmap, SkPixelSerializer::encode() can now handle colortables.

Review URL: https://codereview.chromium.org/1501303002
2015-12-07 12:42:24 -08:00
reed
095530389d scaling API on SkPixmap
BUG=skia:4481

Review URL: https://codereview.chromium.org/1463373002
2015-11-23 12:32:16 -08:00
reed
d82bc7b90a post-commit fixes to applyFilter CL
BUG=skia:

Review URL: https://codereview.chromium.org/1404483002
2015-10-12 13:17:23 -07:00
reed
88d064d0e4 add applyFilter() to SkImage
Result:
- clients can get a filtered version of an image without having to setup a temp drawing environment
- for some cases, the process is more efficient even than (deprecated) drawSprite, since there is no need to draw/copy the result

Impl:
- made Proxy virtual so we don't need to have an existing device to use it

This, in conjunction with LocalMatrixImageFilter, should allow us to simplify and optimize ApplyImageFilter() in cc/output/gl_renderer.cc

BUG=skia:

Review URL: https://codereview.chromium.org/1390913005
2015-10-12 11:30:02 -07:00
reed
af3fbfca0a SkImage doesn't use props, so don't need to store it
BUG=skia:
TBR=bsalomon

Review URL: https://codereview.chromium.org/1372153006
2015-10-04 11:28:36 -07:00
fmalita
3f9deab9fc Remove SkImage::newImage()
All clients converted to newSubset().

R=reed@google.com

Review URL: https://codereview.chromium.org/1364263002
2015-09-24 07:43:41 -07:00
reed
7b6945bc4e remove unused (by the outside) SkImage::newSurface, and simplify newImage -> newSubset
BUG=skia:

Review URL: https://codereview.chromium.org/1364443002
2015-09-24 00:50:58 -07:00
reed
85d9178832 Use SkImageCacherator in SkImages
Possible follow-up changes to consider

1. Roll SkImage_Raster and _Gpu into _Generator, where the generator (or cacherator) is backed by a pre-existing texture or raster.
2. Evolve SkImageUsageType into a verb requiring stretching, and have the caller (common code) digest the caps() and usage, so that subclasses are just told what to do (stretch or not)
3. Common code/utility to convert an unstretched texture into a stretch one (and cache it) if the generator can only make an unstretched one.

BUG=skia:

Review URL: https://codereview.chromium.org/1282363002
2015-09-10 14:33:38 -07:00
fmalita
2be7125f32 Add a SkPixelSerializer SkImage encode variant
R=reed@google.com
BUG=skia:4285

Review URL: https://codereview.chromium.org/1310633006
2015-09-03 07:17:25 -07:00
reed
86e90fafe1 add preroll to image, for chrome's warmup pass
BUG=skia:

Review URL: https://codereview.chromium.org/1301373007
2015-09-01 12:22:32 -07:00
fmalita
ddbbddabef SkImage method for detecting lazy decoding
BUG=skia:4224
R=reed@google.com

Review URL: https://codereview.chromium.org/1305453007
2015-08-20 08:47:26 -07:00
reed
d5b75638f7 add SkImage::NewFromPicture and a GM to test it
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1288403002
2015-08-13 09:37:45 -07:00
reed
80c772b2a4 unify pixelref and image ID space, so we can share IDs when we share pixels
I view this as a performance opportunity, not a feature or bug fix per-se.

BUG=skia:

Review URL: https://codereview.chromium.org/1266883002
2015-07-30 18:58:23 -07:00
bsalomon
a449779a33 Remove test of illegal behavior that modifies a texture backing an SkImage.
Review URL: https://codereview.chromium.org/1244143004
2015-07-23 12:22:19 -07:00
reed
3c06511e91 Add image->bitmap
BUG=skia:

patch from issue 1212163012 at patchset 1 (http://crrev.com/1212163012#ps1)

Review URL: https://codereview.chromium.org/1208993017
2015-07-08 12:46:23 -07:00
reed
5617900063 add SkImage::NewFromBitmap
BUG=skia:

Review URL: https://codereview.chromium.org/1217053003
2015-07-07 06:11:20 -07:00
reed
759373a9fe add colortable param to newrastercopy
BUG=skia:
TBR=
NOTREECHECKS=True

Review URL: https://codereview.chromium.org/1222683004
2015-07-03 21:01:10 -07:00
bsalomon
c49e8682ab Rename flushForExternalRead->flushForExternalIO and always call in SkSurface::getTextureHandle
Review URL: https://codereview.chromium.org/1216243003
2015-06-30 11:37:35 -07:00
mtklein
2766c00fc0 remove SkInstCnt
It's been outclassed by Valgrind and leak sanitizer,
and it seems to be causing problems for external folks building Skia.

I'm not sure why our own builds seem unaffected.

Latest thread:
https://groups.google.com/forum/#!topic/skia-discuss/oj9FsQwwSF0

BUG=skia:

Review URL: https://codereview.chromium.org/1217573002
2015-06-26 11:45:03 -07:00
reed
56b73fc63f remove (legacy) NewFromData
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1199413003
2015-06-23 21:31:08 -07:00
reed
871872f3f2 change old picture serialization to really handle images
BUG=skia:3965

Review URL: https://codereview.chromium.org/1199473002
2015-06-22 12:48:26 -07:00
reed
de49988bc2 add callbacks to Images that wrap client-provided content
BUG=skia:

Review URL: https://codereview.chromium.org/1169553003
2015-06-18 13:41:40 -07:00
bsalomon
6dc6f5f4a1 Add support for creating texture backed images where Skia will delete the texture.
Review URL: https://codereview.chromium.org/1187523005
2015-06-18 09:12:17 -07:00
bsalomon
55812362f1 Towards removing getTexture() on SkImage
Review URL: https://codereview.chromium.org/1166993002
2015-06-10 08:49:28 -07:00
bsalomon
993a4216a6 SkImage::NewFromYUVTexturesCopy
Review URL: https://codereview.chromium.org/1149553002
2015-05-29 11:37:25 -07:00
reed
8b26b99c97 new image from backend desc
BUG=485243

Review URL: https://codereview.chromium.org/1121813002
2015-05-07 15:36:18 -07:00
reed
a85d4d0814 Make drawImage a virtual on SkDevice
This reverts commit 06dad4b92f.

BUG=485243

Review URL: https://codereview.chromium.org/1129843003
2015-05-06 12:56:48 -07:00
reed
06dad4b92f Revert of Revert of Revert of Make drawImage a virtual on SkDevice (patchset #1 id:1 of https://codereview.chromium.org/1126273002/)
Reason for revert:
still breaking webglconformance

Original issue's description:
> Revert of Revert of Make drawImage a virtual on SkDevice (patchset #1 id:1 of https://codereview.chromium.org/1124003002/)
>
> Reason for revert:
> retry now that some fixes (onDrawImage overrides) have landed in chrome/blink
>
> Original issue's description:
> > Revert of Make drawImage a virtual on SkDevice (patchset #4 id:60001 of https://codereview.chromium.org/1122643005/)
> >
> > Reason for revert:
> > speculative to see if it unblocks DEPS roll
> >
> > Original issue's description:
> > > Make drawImage a virtual on SkDevice
> > >
> > > Now with patch for SkDeferredCanvas
> > >
> > > This reverts commit 119468b71f.
> > >
> > > BUG=skia:
> > >
> > > Committed: https://skia.googlesource.com/skia/+/14fe8fd3e53b5e988aac189a8bc3ed28904d85c8
> >
> > TBR=robertphillips@google.com,mtklein@google.com,reed@google.com
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/3538e3bfe2e00bc1b5b48d977fa7adff64d8c96b
>
> TBR=robertphillips@google.com,mtklein@google.com,reed@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/620ba3afe09d4173c87537040fe50c1c1895fb1a

TBR=robertphillips@google.com,mtklein@google.com,reed@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1127993004
2015-05-06 10:16:02 -07:00
reed
620ba3afe0 Revert of Revert of Make drawImage a virtual on SkDevice (patchset #1 id:1 of https://codereview.chromium.org/1124003002/)
Reason for revert:
retry now that some fixes (onDrawImage overrides) have landed in chrome/blink

Original issue's description:
> Revert of Make drawImage a virtual on SkDevice (patchset #4 id:60001 of https://codereview.chromium.org/1122643005/)
>
> Reason for revert:
> speculative to see if it unblocks DEPS roll
>
> Original issue's description:
> > Make drawImage a virtual on SkDevice
> >
> > Now with patch for SkDeferredCanvas
> >
> > This reverts commit 119468b71f.
> >
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/14fe8fd3e53b5e988aac189a8bc3ed28904d85c8
>
> TBR=robertphillips@google.com,mtklein@google.com,reed@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/3538e3bfe2e00bc1b5b48d977fa7adff64d8c96b

TBR=robertphillips@google.com,mtklein@google.com,reed@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1126273002
2015-05-06 07:54:38 -07:00
reed
3538e3bfe2 Revert of Make drawImage a virtual on SkDevice (patchset #4 id:60001 of https://codereview.chromium.org/1122643005/)
Reason for revert:
speculative to see if it unblocks DEPS roll

Original issue's description:
> Make drawImage a virtual on SkDevice
>
> Now with patch for SkDeferredCanvas
>
> This reverts commit 119468b71f.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/14fe8fd3e53b5e988aac189a8bc3ed28904d85c8

TBR=robertphillips@google.com,mtklein@google.com,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1124003002
2015-05-05 17:30:45 -07:00
reed
14fe8fd3e5 Make drawImage a virtual on SkDevice
Now with patch for SkDeferredCanvas

This reverts commit 119468b71f.

BUG=skia:

Review URL: https://codereview.chromium.org/1122643005
2015-05-05 12:54:33 -07:00
reed
119468b71f Revert of Make drawImage a virtual on SkDevice (patchset #3 id:40001 of https://codereview.chromium.org/11188… (patchset #2 id:20001 of https://codereview.chromium.org/1122813002/)
Reason for revert:
did not update DeferredCanvas

Original issue's description:
> Make drawImage a virtual on SkDevice (patchset #3 id:40001 of https://codereview.chromium.org/1118823004/)"
>
> Fixed serialization from prev CL
>
> This reverts commit 973d1f1f60.
>
> BUG=skia:3803
> TBR=
>
> Committed: https://skia.googlesource.com/skia/+/5392785080001fe737fac9e5801fc2127a78d4fb

TBR=
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3803

Review URL: https://codereview.chromium.org/1123743006
2015-05-05 05:42:02 -07:00
reed
5392785080 Make drawImage a virtual on SkDevice (patchset #3 id:40001 of https://codereview.chromium.org/1118823004/)"
Fixed serialization from prev CL

This reverts commit 973d1f1f60.

BUG=skia:3803
TBR=

Review URL: https://codereview.chromium.org/1122813002
2015-05-04 10:49:41 -07:00
reed
973d1f1f60 Revert of make drawImage a virtual on SkDevice (patchset #3 id:40001 of https://codereview.chromium.org/1118823004/)
Reason for revert:
need to make serialization work for pictures, now that images are "real"

Original issue's description:
> make drawImage a virtual on SkDevice
>
> default impl will turn the Image into a (raster) bitmap and call drawBitmap.
>
> BUG=skia:3803
>
> Committed: https://skia.googlesource.com/skia/+/f603fb3d0e5fa57c3f228d66945bef198b001135

TBR=bsalomon@google.com,robertphillips@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3803

Review URL: https://codereview.chromium.org/1122803002
2015-05-04 09:00:46 -07:00
reed
f603fb3d0e make drawImage a virtual on SkDevice
default impl will turn the Image into a (raster) bitmap and call drawBitmap.

BUG=skia:3803

Review URL: https://codereview.chromium.org/1118823004
2015-05-04 08:32:02 -07:00
kkinnunen
cd6ca9e689 Make SkImage::getTexture() const
Make SkImage::getTexture() const. At the moment the function
does not mutate the state.

One use-case is that this makes it possible in the future to add draw
function to SkBaseDevice functions. The device draw functions take
const ref objects, but SkGpuDevice likely would benefit of using the
getTexture().

BUG=skia:3388
R=reed@google.com

Review URL: https://codereview.chromium.org/925853002
2015-02-18 10:50:52 -08:00
reed
9e447c08de remove unneeded preroll
BUG=skia:
TBR=robertphilips

Review URL: https://codereview.chromium.org/927443006
2015-02-15 11:08:40 -08:00
reed
96a857ef5a initial preroll api
BUG=skia:

Review URL: https://codereview.chromium.org/855473002
2015-01-25 10:33:58 -08:00
reed
f803da12cf add newImage API
BUG=skia:3277
related bug: skbug.com/3276

Review URL: https://codereview.chromium.org/821083002
2015-01-23 05:58:07 -08:00
reed
4ef0c8aea2 remove NewTexture?
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/831323005
2015-01-13 04:00:55 -08:00
reed
5965c8ae4e add ImageGenerator::NewFromData to porting layer
BUG=skia:3275

Review URL: https://codereview.chromium.org/834633006
2015-01-07 18:04:45 -08:00