History log of /external/skia/src/gpu/effects/GrTextureDomain.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
7ea439b2203855db97330b25945b87dd4b170b8b 03-Dec-2015 egdaniel <egdaniel@google.com> Create GLSLUniformHandler class for gpu backend

BUG=skia:

Review URL: https://codereview.chromium.org/1490283004
/external/skia/src/gpu/effects/GrTextureDomain.h
a2e3e0f7f8ceed2ab152428d7ee2812ad8c842c3 19-Nov-2015 egdaniel <egdaniel@google.com> Move glsl onto EmitArgs struct for emitCode

BUG=skia:

Review URL: https://codereview.chromium.org/1453623003
/external/skia/src/gpu/effects/GrTextureDomain.h
e004bfc0a5e28cc083158f1a75e981ffd58a8134 16-Nov-2015 robertphillips <robertphillips@google.com> Increase the amount of debug information printed out by batches

Untangling MDB bugs requires more information. In particular the render targets.

BUG=skia:4094
TBR=bsalomon@google.com

Review URL: https://codereview.chromium.org/1443763002
/external/skia/src/gpu/effects/GrTextureDomain.h
57d3b039c635945e1dc2fcbac3462ed8bfedb068 13-Nov-2015 egdaniel <egdaniel@google.com> Rename some processor functions from GL to GLSL

TBR=bsalomon@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/1443743002
/external/skia/src/gpu/effects/GrTextureDomain.h
64c4728c70001ed074fecf5c4e083781987b12e9 13-Nov-2015 egdaniel <egdaniel@google.com> Make all GrFragmentProcessors GL independent.

TBR=bsalomon@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/1434313002
/external/skia/src/gpu/effects/GrTextureDomain.h
2d721d33aad192cc8a7a1321504b39bdca2a57ce 11-Nov-2015 egdaniel <egdaniel@google.com> Move all ShaderBuilder files to GLSL

BUG=skia:

Review URL: https://codereview.chromium.org/1438003003
/external/skia/src/gpu/effects/GrTextureDomain.h
7dc4bd06fca73a97dcf3ad4a7425597160f1edfc 29-Oct-2015 egdaniel <egdaniel@google.com> Remove GrGLProcessor and create GrGLSLTextureSampler class.

Part ??? of separating glsl and gl

BUG=skia:

Review URL: https://codereview.chromium.org/1425013003
/external/skia/src/gpu/effects/GrTextureDomain.h
018fb62d12d1febf121fe265da5b6117b86a6541 28-Oct-2015 egdaniel <egdaniel@google.com> Create GLSL base class for ProgramDataManager

BUG=skia:

Review URL: https://codereview.chromium.org/1428543003
/external/skia/src/gpu/effects/GrTextureDomain.h
0ba8c2401e7b9b0dc68a434347a32c733045a57b 07-Oct-2015 bsalomon <bsalomon@google.com> Insert clip fragment processor outside GrCMM

Review URL: https://codereview.chromium.org/1393553002
/external/skia/src/gpu/effects/GrTextureDomain.h
4a339529612a43871d021877e58698e067d6c4cd 06-Oct-2015 bsalomon <bsalomon@google.com> Bye bye processor data manager.

Review URL: https://codereview.chromium.org/1388113002
/external/skia/src/gpu/effects/GrTextureDomain.h
96fcdcc219d2a0d3579719b84b28bede76efba64 27-Aug-2015 halcanary <halcanary@google.com> Style Change: NULL->nullptr
DOCS_PREVIEW= https://skia.org/?cl=1316233002

Review URL: https://codereview.chromium.org/1316233002
/external/skia/src/gpu/effects/GrTextureDomain.h
b5fb5af5734dcc31a5e29212db39f0da71f92f2d 25-Aug-2015 joshualitt <joshualitt@chromium.org> Fix for MSAN unintialized value

BUG=524094

Review URL: https://codereview.chromium.org/1320433002
/external/skia/src/gpu/effects/GrTextureDomain.h
b1daa86732fe70aa4630c89d75ff0fd619d77c77 18-Aug-2015 wangyix <wangyix@google.com> When getGLInstance is called on a frag proc, the resulting GrGLFragmentProcessor will be the root of a tree of GrGLFragmentProcessors that mirrors the GrFragmentProcessor's tree. This allows setData() to be called recursively (removing the responsibility from compose shader) and allows gl instances direct access to their children gl instances so they can emit their code.

BUG=skia:4182

Review URL: https://codereview.chromium.org/1287023009
/external/skia/src/gpu/effects/GrTextureDomain.h
4b3050b410254d0cb38df9a30ae2e209124fa1a2 04-Aug-2015 wangyix <wangyix@google.com> Added registerChild; transforms, textures, glKey automatically handled.

BUG=skia:

Review URL: https://codereview.chromium.org/1266633003
/external/skia/src/gpu/effects/GrTextureDomain.h
6af0c9394301b9f976813cc6dbdbbfe779030fe1 22-Jul-2015 wangyix <wangyix@google.com> Moved GrGLFragmentProcessor definition to its own file

BUG=skia:

Review URL: https://codereview.chromium.org/1246193002
/external/skia/src/gpu/effects/GrTextureDomain.h
5f10b5c1b5744106312e24835d235b72fdba5802 09-Jul-2015 joshualitt <joshualitt@chromium.org> More threading of GrProcessorDataManager

TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1230813003
/external/skia/src/gpu/effects/GrTextureDomain.h
cfc18867d982119d9dc2888bf09f1093012daadd 28-Apr-2015 jvanverth <jvanverth@google.com> Use GLSLCaps for creating processor keys and GLSL-specific programs

Effectively all this does is future-proof any GLSL-specific code, as
GLSLCaps is just a typedef of GLCaps.

BUG=skia:

Review URL: https://codereview.chromium.org/1109863004
/external/skia/src/gpu/effects/GrTextureDomain.h
d0d37cace08f12abf8d316e6949e947551d418e6 02-Apr-2015 senorblanco <senorblanco@chromium.org> Implement approx-match support in image filter saveLayer() offscreen.

Currently, the GPU-side image filter implementation creates
exact-match textures for the offscreen backing stores for
saveLayer(). This is because several filters have GPU
implementations which depend on the texture coordinates
being 0..1.

The fix is three-fold:

1) Store the actual requested size in the SkGpuDevice, so
that when wrapping it in an SkBitmap for passing to
filterImage(), we can give it the original size.
2) Fix the filters (SkMagnifierImageFilter,
SkLightingImageFilter, SkMatrixConvolutionImageFilter,
SkMatrixImageFilter) whose GPU implementation depends on
0..1 texture coordinates.
3) Remove the exception for GPU-side image filters in
SkCanvas::internalSaveLayer().

For the lighting filters, there were two bugs which were
cancelling each other out: the sobel filter matrix was
being computed upside down, but then we'd negate the
resulting normal. This worked fine in the exact-match case,
but in the approx-match case we'd sample garbage along
the edge pixels. Also, we never implemented the edge pixels
according to spec in the GPU case. It requires a
different fragment shader for each edge of the nine-patch,
which meant we couldn't use asFragmentProcessor(), and had
to implement the drawing via a filterImageGPU() override.
In order to avoid polluting the public API, I inserted a
new base class, SkLightingImageFilterInternal above
Sk[Diffuse|Specular]LightingImageFilter to handle the
implementation.

For the SkMatrixConvolutionImageFilter, it seems the
GLSL clamp() function occasionally returns values outside
the clamped range, resulting in access of garbage
texels even in GL_NEAREST. The fix here is to clamp to a
rect inset by half a texel. There was also a bug in
the unpremultiply step when fConvolveAlpha is false.

For SkMatrixImageFilter, the fix was to make the generic
draw path be more careful about when to use texture domain.
If the bitmap already has a texture, use texture domain
if the srcRect is smaller than the entire texture (not
the entire bitmap).

N.B.: this change will cause some minor pixel diffs in the
GPU results of the following GMs (and possibly more):
matriximagefilter, matrixconvolution, imagefiltersscaled,
lighting, imagemagnifier, filterfastbounds,
complexclip_aa_Layer_invert, complexclip_aa_layer,
complexclip_bw_layer_invert, complexclip_bw_layer.

BUG=skia:3532

Committed: https://skia.googlesource.com/skia/+/b97dafefe63ea0a1bbce8e8b209f4920983fb8b9

Committed: https://skia.googlesource.com/skia/+/f5f8518fe0bbd2703e4ffc1b11ad7b4312ff7641

Committed: https://skia.googlesource.com/skia/+/46112cf2a7c7307f1c9eebb5f881cbda15aa460c

Review URL: https://codereview.chromium.org/1034733002
/external/skia/src/gpu/effects/GrTextureDomain.h
82973dbf4f22928e8dd75c8bc5b155f842c8a557 02-Apr-2015 rmistry <rmistry@google.com> Revert of Implement approx-match support in image filter saveLayer() offscreen. (patchset #31 id:590001 of https://codereview.chromium.org/1034733002/)

Reason for revert:
Spoke to Stephen about this. Reverting because failing debug builds:

https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Mac10.9-Clang-MacMini6.2-GPU-HD4000-x86_64-Debug/builds/51
https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-ShuttleA-GPU-GTX660-x86_64-Debug/builds/54

Original issue's description:
> Implement approx-match support in image filter saveLayer() offscreen.
>
> Currently, the GPU-side image filter implementation creates
> exact-match textures for the offscreen backing stores for
> saveLayer(). This is because several filters have GPU
> implementations which depend on the texture coordinates
> being 0..1.
>
> The fix is three-fold:
>
> 1) Store the actual requested size in the SkGpuDevice, so
> that when wrapping it in an SkBitmap for passing to
> filterImage(), we can give it the original size.
> 2) Fix the filters (SkMagnifierImageFilter,
> SkLightingImageFilter, SkMatrixConvolutionImageFilter,
> SkMatrixImageFilter) whose GPU implementation depends on
> 0..1 texture coordinates.
> 3) Remove the exception for GPU-side image filters in
> SkCanvas::internalSaveLayer().
>
> For the lighting filters, there were two bugs which were
> cancelling each other out: the sobel filter matrix was
> being computed upside down, but then we'd negate the
> resulting normal. This worked fine in the exact-match case,
> but in the approx-match case we'd sample garbage along
> the edge pixels. Also, we never implemented the edge pixels
> according to spec in the GPU case. It requires a
> different fragment shader for each edge of the nine-patch,
> which meant we couldn't use asFragmentProcessor(), and had
> to implement the drawing via a filterImageGPU() override.
> In order to avoid polluting the public API, I inserted a
> new base class, SkLightingImageFilterInternal above
> Sk[Diffuse|Specular]LightingImageFilter to handle the
> implementation.
>
> For the SkMatrixConvolutionImageFilter, it seems the
> GLSL clamp() function occasionally returns values outside
> the clamped range, resulting in access of garbage
> texels even in GL_NEAREST. The fix here is to clamp to a
> rect inset by half a texel. There was also a bug in
> the unpremultiply step when fConvolveAlpha is false.
>
> For SkMatrixImageFilter, the fix was to make the generic
> draw path be more careful about when to use texture domain.
> If the bitmap already has a texture, use texture domain
> if the srcRect is smaller than the entire texture (not
> the entire bitmap).
>
> N.B.: this change will cause some minor pixel diffs in the
> GPU results of the following GMs (and possibly more):
> matriximagefilter, matrixconvolution, imagefiltersscaled,
> lighting, imagemagnifier, filterfastbounds,
> complexclip_aa_Layer_invert, complexclip_aa_layer,
> complexclip_bw_layer_invert, complexclip_bw_layer.
>
> BUG=skia:3532
>
> Committed: https://skia.googlesource.com/skia/+/b97dafefe63ea0a1bbce8e8b209f4920983fb8b9
>
> Committed: https://skia.googlesource.com/skia/+/f5f8518fe0bbd2703e4ffc1b11ad7b4312ff7641
>
> Committed: https://skia.googlesource.com/skia/+/46112cf2a7c7307f1c9eebb5f881cbda15aa460c

TBR=bsalomon@google.com,reed@chromium.org,senorblanco@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3532

Review URL: https://codereview.chromium.org/1057693002
/external/skia/src/gpu/effects/GrTextureDomain.h
46112cf2a7c7307f1c9eebb5f881cbda15aa460c 01-Apr-2015 senorblanco <senorblanco@chromium.org> Implement approx-match support in image filter saveLayer() offscreen.

Currently, the GPU-side image filter implementation creates
exact-match textures for the offscreen backing stores for
saveLayer(). This is because several filters have GPU
implementations which depend on the texture coordinates
being 0..1.

The fix is three-fold:

1) Store the actual requested size in the SkGpuDevice, so
that when wrapping it in an SkBitmap for passing to
filterImage(), we can give it the original size.
2) Fix the filters (SkMagnifierImageFilter,
SkLightingImageFilter, SkMatrixConvolutionImageFilter,
SkMatrixImageFilter) whose GPU implementation depends on
0..1 texture coordinates.
3) Remove the exception for GPU-side image filters in
SkCanvas::internalSaveLayer().

For the lighting filters, there were two bugs which were
cancelling each other out: the sobel filter matrix was
being computed upside down, but then we'd negate the
resulting normal. This worked fine in the exact-match case,
but in the approx-match case we'd sample garbage along
the edge pixels. Also, we never implemented the edge pixels
according to spec in the GPU case. It requires a
different fragment shader for each edge of the nine-patch,
which meant we couldn't use asFragmentProcessor(), and had
to implement the drawing via a filterImageGPU() override.
In order to avoid polluting the public API, I inserted a
new base class, SkLightingImageFilterInternal above
Sk[Diffuse|Specular]LightingImageFilter to handle the
implementation.

For the SkMatrixConvolutionImageFilter, it seems the
GLSL clamp() function occasionally returns values outside
the clamped range, resulting in access of garbage
texels even in GL_NEAREST. The fix here is to clamp to a
rect inset by half a texel. There was also a bug in
the unpremultiply step when fConvolveAlpha is false.

For SkMatrixImageFilter, the fix was to make the generic
draw path be more careful about when to use texture domain.
If the bitmap already has a texture, use texture domain
if the srcRect is smaller than the entire texture (not
the entire bitmap).

N.B.: this change will cause some minor pixel diffs in the
GPU results of the following GMs (and possibly more):
matriximagefilter, matrixconvolution, imagefiltersscaled,
lighting, imagemagnifier, filterfastbounds,
complexclip_aa_Layer_invert, complexclip_aa_layer,
complexclip_bw_layer_invert, complexclip_bw_layer.

BUG=skia:3532

Committed: https://skia.googlesource.com/skia/+/b97dafefe63ea0a1bbce8e8b209f4920983fb8b9

Committed: https://skia.googlesource.com/skia/+/f5f8518fe0bbd2703e4ffc1b11ad7b4312ff7641

Review URL: https://codereview.chromium.org/1034733002
/external/skia/src/gpu/effects/GrTextureDomain.h
36352bf5e38f45a70ee4f4fc132a38048d38206d 26-Mar-2015 mtklein <mtklein@chromium.org> C++11 override should now be supported by all of {bots,Chrome,Android,Mozilla}

NOPRESUBMIT=true

BUG=skia:
DOCS_PREVIEW= https://skia.org/?cl=1037793002

Review URL: https://codereview.chromium.org/1037793002
/external/skia/src/gpu/effects/GrTextureDomain.h
72c9faab45124e08c85f70ca38536914862d947c 09-Jan-2015 mtklein <mtklein@chromium.org> Fix up all the easy virtual ... SK_OVERRIDE cases.

This fixes every case where virtual and SK_OVERRIDE were on the same line,
which should be the bulk of cases. We'll have to manually clean up the rest
over time unless I level up in regexes.

for f in (find . -type f); perl -p -i -e 's/virtual (.*)SK_OVERRIDE/\1SK_OVERRIDE/g' $f; end

BUG=skia:

Review URL: https://codereview.chromium.org/806653007
/external/skia/src/gpu/effects/GrTextureDomain.h
eb2a6761654307e8aeeeaabdd63c6bf9ab0411e9 04-Dec-2014 joshualitt <joshualitt@chromium.org> Remove backend factories

BUG=skia:

Review URL: https://codereview.chromium.org/778453002
/external/skia/src/gpu/effects/GrTextureDomain.h
605dd0fbce9dbb2a0d3313e13e161f2bd54870d7 12-Nov-2014 egdaniel <egdaniel@google.com> Move GrInvariantOutput out of GrProcessor and into its own class.

This will help with the ability to subclass, add to, etc. GrInvariantOutput. Also it was simply
getting a little too big to be a "supporting" subclass
BUG=skia:

Review URL: https://codereview.chromium.org/699943003
/external/skia/src/gpu/effects/GrTextureDomain.h
0e08fc17e4718f7ce4e38f793695896473e96948 15-Oct-2014 bsalomon <bsalomon@google.com> Push isEqual/onIsEqual down from GrProcessor to subclasses.

R=joshualitt@google.com

Review URL: https://codereview.chromium.org/654273002
/external/skia/src/gpu/effects/GrTextureDomain.h
1a8ecdfb73a15de600d5779b75d7c4b61863c50b 03-Oct-2014 egdaniel <egdaniel@google.com> Add isSingleComponent bool to getConstantColorComponent

Initial step to allowing effects to use/output 1 or 4 color/coverage components. This cl doesn't change any current logic and all effects still assume they are working with 4 components.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/3b8af078281a5a20f951b9fd84f38d92b8f6217b

Review URL: https://codereview.chromium.org/608253002
/external/skia/src/gpu/effects/GrTextureDomain.h
b4b7a4c9ea2e399db550f93e3754c351e5b2079a 02-Oct-2014 robertphillips <robertphillips@google.com> Revert of Add isSingleComponent bool to getConstantColorComponent (patchset #6 id:100001 of https://codereview.chromium.org/608253002/)

Reason for revert:
Changing some GMs

Original issue's description:
> Add isSingleComponent bool to getConstantColorComponent
>
> Initial step to allowing effects to use/output 1 or 4 color/coverage components. This cl doesn't change any current logic and all effects still assume they are working with 4 components.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/3b8af078281a5a20f951b9fd84f38d92b8f6217b

TBR=joshualitt@chromium.org,bsalomon@google.com,reed@google.com,egdaniel@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/617853003
/external/skia/src/gpu/effects/GrTextureDomain.h
3b8af078281a5a20f951b9fd84f38d92b8f6217b 02-Oct-2014 egdaniel <egdaniel@google.com> Add isSingleComponent bool to getConstantColorComponent

Initial step to allowing effects to use/output 1 or 4 color/coverage components. This cl doesn't change any current logic and all effects still assume they are working with 4 components.

BUG=skia:

Review URL: https://codereview.chromium.org/608253002
/external/skia/src/gpu/effects/GrTextureDomain.h
b0a8a377f832c59cee939ad721e1f87d378b7142 23-Sep-2014 joshualitt <joshualitt@chromium.org> Patch to create a distinct geometry processor. The vast majority of this patch
is just a rename. The meat is in GrGeometryProcessor, GrProcessor,
GrGL*Processor, GrProcessorStage, Gr*BackendProcessorFactory,
GrProcessUnitTestFactory, and the builders

BUG=skia:
R=bsalomon@google.com

Author: joshualitt@chromium.org

Review URL: https://codereview.chromium.org/582963002
/external/skia/src/gpu/effects/GrTextureDomain.h
30ba436f04e61d4505fb854d5fc56079636e0788 22-Aug-2014 joshualitt <joshualitt@chromium.org> Initial refactor of shaderbuilder to prepare for geometry shaders

gitignore for eclipse

BUG=skia:
R=bsalomon@google.com, bsalomon@chromium.org

Author: joshualitt@chromium.org

Review URL: https://codereview.chromium.org/491673002
/external/skia/src/gpu/effects/GrTextureDomain.h
01a492f959e886f89995c6d1bbcd9f7bb7639726 21-Aug-2014 egdaniel <egdaniel@google.com> Fix == operator in GrTextureDomain so we don't compair uninitilized values

We were getting random behavior when comparing two GrTexureDomains since
fDomain was not initialized when the mode was set to ignore.

BUG=skia:
R=bsalomon@google.com

Author: egdaniel@google.com

Review URL: https://codereview.chromium.org/469393007
/external/skia/src/gpu/effects/GrTextureDomain.h
7510b224e52b9518a8ddf7418db0e9c258f79539 30-Jul-2014 kkinnunen <kkinnunen@nvidia.com> Rename GrGLUniformManager to GrGLProgramDataManager

Rename GrGLUniformManager to GrGLProgramDataManager in anticipation that the
class would be used to manage shader resources that are not uniforms.

This is needed in order to implement NVPR on GLES.

R=bsalomon@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/365853002
/external/skia/src/gpu/effects/GrTextureDomain.h
5ae5fc59b27a48711e514b3ede548b228e393e9b 29-Jul-2014 joshualitt <joshualitt@chromium.org> Adding repeat mode to texture domain

BUG=skia:
R=bsalomon@chromium.org, senorblanco@chromium.org, bsalomon@google.com, junov@chromium.org

Author: joshualitt@chromium.org

Review URL: https://codereview.chromium.org/422123003
/external/skia/src/gpu/effects/GrTextureDomain.h
63e99f7a03b2ac90ae7a00232674fd39c0bdcc68 21-Jul-2014 bsalomon <bsalomon@google.com> Allow GrGLEffects to produce variable length keys.

R=robertphillips@google.com, jvanverth@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/385713005
/external/skia/src/gpu/effects/GrTextureDomain.h
83d081ae1d731b5039e99823620f5e287542ee39 08-Jul-2014 bsalomon <bsalomon@google.com> Goodbye GrEffectRef.

Also, reworked some var names and comments around SkShader::asNewEffect.

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/374923002
/external/skia/src/gpu/effects/GrTextureDomain.h
7d7f31433b627e62f518e9186d3f2d9bd44662e0 16-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Use GrTextureDomain in GrBicubicEffect to perform non-bleeding HQ filter drawBitmap.

R=senorblanco@chromium.org, robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/99203011

git-svn-id: http://skia.googlecode.com/svn/trunk@12687 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/gpu/effects/GrTextureDomain.h
907fbd53c5e5dd4cbde7b72f9242b51febd7ef95 09-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Make texture domain a helper so that it can be incorporated into other effects.

R=robertphillips@google.com, jvanverth@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/98893006

git-svn-id: http://skia.googlecode.com/svn/trunk@12569 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/gpu/effects/GrTextureDomain.h