aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/effects/GrYUVtoRGBEffect.cpp
Commit message (Collapse)AuthorAge
* Adding linear interpolation to rgb->yuv conversionGravatar sugoi2015-03-06
| | | | | | | | | | When the UV planes are smaller than the Y plane, doing the upscaling in nearest mode was creating artefacts, so I changed it to use linear interpolation to fix the issue. BUG=460380 Committed: https://skia.googlesource.com/skia/+/cd9d42c5167a50f1bf20e969343556d61354171b Review URL: https://codereview.chromium.org/973563002
* Revert of Adding linear interpolation to rgb->yuv conversion (patchset #1 ↵Gravatar joshualitt2015-03-04
| | | | | | | | | | | | | | | | | | | | | | | | id:1 of https://codereview.chromium.org/973563002/) Reason for revert: Speculative revert to see if this unblocks the deps roll Original issue's description: > Adding linear interpolation to rgb->yuv conversion > > When the UV planes are smaller than the Y plane, doing the upscaling in nearest mode was creating artefacts, so I changed it to use linear interpolation to fix the issue. > > BUG=460380 > > Committed: https://skia.googlesource.com/skia/+/cd9d42c5167a50f1bf20e969343556d61354171b TBR=bsalomon@google.com,scroggo@google.com,reed@google.com,sugoi@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=460380 Review URL: https://codereview.chromium.org/977133002
* Adding linear interpolation to rgb->yuv conversionGravatar sugoi2015-03-03
| | | | | | | | When the UV planes are smaller than the Y plane, doing the upscaling in nearest mode was creating artefacts, so I changed it to use linear interpolation to fix the issue. BUG=460380 Review URL: https://codereview.chromium.org/973563002
* YUV scale fixGravatar sugoi2015-02-13
| | | | | | | | | | There was a scaling mistake visible in some JPEG images because the ratio between Y, U and V planes were assumed to be the same ratios as the ratio between texture sizes, which was wrong because texture have a minimum size of 16 and are rounded up to the next POT. Since the ratios between Y and UV planes are generally 1, 2 or 4, rounding up to the next POT would generally preserve this ratio, so that this bug was not very visible, apart from very small jpeg images of 8 or less pixels in either width or height. BUG=457954 Committed: https://skia.googlesource.com/skia/+/e6eddf7dd85add7da41f22f2643bdd573ad1f1cf Review URL: https://codereview.chromium.org/922273002
* Revert of YUV scale fix (patchset #2 id:20001 of ↵Gravatar jvanverth2015-02-13
| | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/922273002/) Reason for revert: Turning Windows compile bots red. Original issue's description: > YUV scale fix > > There was a scaling mistake visible in some JPEG images because the ratio between Y, U and V planes were assumed to be the same ratios as the ratio between texture sizes, which was wrong because texture have a minimum size of 16 and are rounded up to the next POT. Since the ratios between Y and UV planes are generally 1, 2 or 4, rounding up to the next POT would generally preserve this ratio, so that this bug was not very visible, apart from very small jpeg images of 8 or less pixels in either width or height. > > BUG=457954 > > Committed: https://skia.googlesource.com/skia/+/e6eddf7dd85add7da41f22f2643bdd573ad1f1cf TBR=bsalomon@google.com,sugoi@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=457954 Review URL: https://codereview.chromium.org/926123002
* YUV scale fixGravatar sugoi2015-02-13
| | | | | | | | There was a scaling mistake visible in some JPEG images because the ratio between Y, U and V planes were assumed to be the same ratios as the ratio between texture sizes, which was wrong because texture have a minimum size of 16 and are rounded up to the next POT. Since the ratios between Y and UV planes are generally 1, 2 or 4, rounding up to the next POT would generally preserve this ratio, so that this bug was not very visible, apart from very small jpeg images of 8 or less pixels in either width or height. BUG=457954 Review URL: https://codereview.chromium.org/922273002
* Fix up all the easy virtual ... SK_OVERRIDE cases.Gravatar mtklein2015-01-09
| | | | | | | | | | | | 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
* Cleanup: Mark some overridden methods with 'SK_OVERRIDE'.Gravatar tfarina2014-12-14
| | | | | | | | | | | | | | This fixes errors like this: ../../include/gpu/effects/GrPorterDuffXferProcessor.h:27:25: error: 'name' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override] BUG=skia:3075 TEST=ninja -C out/Debug skia_lib TBR=bsalomon@google.com Review URL: https://codereview.chromium.org/804813002
* Use threshold of 1 texture coord value per pixel w/ nearest neighbor.Gravatar bsalomon2014-12-09
| | | | Review URL: https://codereview.chromium.org/787873002
* Make addUniform take a precisionGravatar bsalomon2014-12-09
| | | | Review URL: https://codereview.chromium.org/788733003
* Remove backend factoriesGravatar joshualitt2014-12-04
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/778453002
* remove proc keyGravatar joshualitt2014-11-25
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/755363002
* Move GrInvariantOutput out of GrProcessor and into its own class.Gravatar egdaniel2014-11-12
| | | | | | | | 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
* Working patch to remove constant attributes. This may cause some gm ↵Gravatar joshualitt2014-10-28
| | | | | | | | | | | | mismatches, I will rebaseline tonight. BUG=skia: Committed: https://skia.googlesource.com/skia/+/84c94c0dfd1e12e97d8a835882dda575f36e41d2 Committed: https://skia.googlesource.com/skia/+/95f5194abce19e8ed875f3495fd16c79a9b931b4 Review URL: https://codereview.chromium.org/678073005
* Revert of Patch to remove constant attributes (patchset #8 id:120002 of ↵Gravatar joshualitt2014-10-28
| | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/678073005/) Reason for revert: I'll checkin tonight when the tree is quieter Original issue's description: > Working patch to remove constant attributes. This may cause some gm mismatches, I will rebaseline tonight. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/84c94c0dfd1e12e97d8a835882dda575f36e41d2 > > Committed: https://skia.googlesource.com/skia/+/95f5194abce19e8ed875f3495fd16c79a9b931b4 TBR=bsalomon@google.com,egdaniel@google.com,joshualitt@chromium.org NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/683203002
* Working patch to remove constant attributes. This may cause some gm ↵Gravatar joshualitt2014-10-28
| | | | | | | | | | mismatches, I will rebaseline tonight. BUG=skia: Committed: https://skia.googlesource.com/skia/+/84c94c0dfd1e12e97d8a835882dda575f36e41d2 Review URL: https://codereview.chromium.org/678073005
* Revert of Patch to remove constant attributes (patchset #6 id:100001 of ↵Gravatar joshualitt2014-10-27
| | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/678073005/) Reason for revert: Breaks the K1 Original issue's description: > Working patch to remove constant attributes. This may cause some gm mismatches, I will rebaseline tonight. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/84c94c0dfd1e12e97d8a835882dda575f36e41d2 TBR=bsalomon@google.com,egdaniel@google.com,joshualitt@chromium.org NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/679363002
* Working patch to remove constant attributes. This may cause some gm ↵Gravatar joshualitt2014-10-27
| | | | | | | | mismatches, I will rebaseline tonight. BUG=skia: Review URL: https://codereview.chromium.org/678073005
* Auto-compare GrProcessors' texture accesses in isEqual().Gravatar bsalomon2014-10-16
| | | | | | R=joshualitt@google.com Review URL: https://codereview.chromium.org/654313002
* Move willUseInputColor check to computeInvariantOutputGravatar egdaniel2014-10-15
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/656503002
* Push isEqual/onIsEqual down from GrProcessor to subclasses.Gravatar bsalomon2014-10-15
| | | | | | R=joshualitt@google.com Review URL: https://codereview.chromium.org/654273002
* Create helper functions to use in computeInvariantOutput callsGravatar egdaniel2014-10-13
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/643743003
* FPs now use the correct builder types(just a rename)Gravatar joshualitt2014-10-09
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/648463003
* Add isSingleComponent bool to getConstantColorComponentGravatar egdaniel2014-10-03
| | | | | | | | | | 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
* Revert of Add isSingleComponent bool to getConstantColorComponent (patchset ↵Gravatar robertphillips2014-10-02
| | | | | | | | | | | | | | | | | | | | | | | #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
* Add isSingleComponent bool to getConstantColorComponentGravatar egdaniel2014-10-02
| | | | | | | | 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
* Patch to create a distinct geometry processor. The vast majority of this patchGravatar joshualitt2014-09-23
| | | | | | | | | | | | | 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
* Changes to remove program effects builderGravatar joshualitt2014-09-18
| | | | | | | | | BUG=skia: R=bsalomon@google.com Author: joshualitt@chromium.org Review URL: https://codereview.chromium.org/551253004
* removing GrDrawEffectGravatar joshualitt2014-09-16
| | | | | | | | | | | | BUG=skia: Committed: https://skia.googlesource.com/skia/+/8ddbe8b9366c8c59c4fb55f01f253de8a0b37d6e R=bsalomon@google.com Author: joshualitt@chromium.org Review URL: https://codereview.chromium.org/571163002
* Revert of removing GrDrawEffect (patchset #4 id:60001 of ↵Gravatar joshualitt2014-09-16
| | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/571163002/) Reason for revert: reverting to unblock another revert Original issue's description: > removing GrDrawEffect > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/8ddbe8b9366c8c59c4fb55f01f253de8a0b37d6e R=bsalomon@google.com TBR=bsalomon@google.com NOTREECHECKS=true NOTRY=true BUG=skia: Author: joshualitt@chromium.org Review URL: https://codereview.chromium.org/577593003
* removing GrDrawEffectGravatar joshualitt2014-09-16
| | | | | | | | | BUG=skia: R=bsalomon@google.com Author: joshualitt@chromium.org Review URL: https://codereview.chromium.org/571163002
* Fix incorrect Rec601 YUV conversion matrix coefficient.Gravatar rileya2014-09-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For future reference, the rec 601 matrix can be defined by the concatenation of these 2 matrices: [1.164 0.0 1.596 0.0] [1.164 -0.391 -0.813 0.0] [1.164 2.018 0.0 0.0] [1.164 0.0 0.0 1.0] See: http://www.fourcc.org/fccyvrgb.php and [1.0 0.0 0.0 -0.0625] [0.0 1.0 0.0 -0.5 ] [0.0 0.0 1.0 -0.5 ] [0.0 0.0 0.0 1.0 ] Which transforms Y by -0.0625 (-16/256) and U and V by -0.5 (-128/256) each. Giving us the final matrix: [1.164 0.0 1.596 -0.87075] [1.164 -0.391 -0.813 0.52925] [1.164 2.018 0.0 -1.08175] [0.0 0.0 0.0 1.0 ] Which produces our output [R,G,B,A], when multiplied with an input [Y,U,V,A]. R=bsalomon@google.com Author: rileya@chromium.org Review URL: https://codereview.chromium.org/545983006
* Add support for the Rec601 YUV color space to GrYUVtoRGBEffect.Gravatar rileya2014-09-12
| | | | | | | | R=bsalomon@google.com, senorblanco@chromium.org, sugoi@chromium.org, reed@google.com Author: rileya@chromium.org Review URL: https://codereview.chromium.org/516463005
* Move MakeDivByTextureWHMatrix to GrCoordTransformGravatar bsalomon2014-08-29
| | | | | | | | R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/522873005
* Initial refactor of shaderbuilder to prepare for geometry shadersGravatar joshualitt2014-08-21
| | | | | | | | | | | gitignore for eclipse BUG=skia: R=bsalomon@google.com, bsalomon@chromium.org Author: joshualitt@chromium.org Review URL: https://codereview.chromium.org/491673002
* Allow GrGLEffects to produce variable length keys.Gravatar bsalomon2014-07-21
| | | | | | | | R=robertphillips@google.com, jvanverth@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/385713005
* This moves us towards variable length effect keys. The overall program key ↵Gravatar bsalomon2014-07-11
| | | | | | | | | | now allows for it. After the header it stores an array of offsets to effect keys. This allows us to grab the effect keys to pass to effects when they generate code. It also ensures that we can't get a collision by sets of keys that are different lengths but are the same when appended together. R=robertphillips@google.com, jvanverth@google.com, egdaniel@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/356513003
* Goodbye GrEffectRef.Gravatar bsalomon2014-07-08
| | | | | | | | | | 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
* Remove GrEffect::CreateEffectRef and GrEffect::AutoEffectRef.Gravatar bsalomon2014-07-08
| | | | | | | | R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/371103003
* Make GrDrawState and GrPaint take GrEffect* instead of GrEffectRef*.Gravatar bsalomon2014-07-08
| | | | | | | | | | | | | | Make Sk-effect virtuals produce GrEffect* rather than GrEffectRef* Make GrEffectRef a typedef for GrEffect. Committed: https://skia.googlesource.com/skia/+/2011fe9cdfa63b83489a146cea6a724cede352c8 R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/377503004
* YUV to RGB converterGravatar sugoi2014-07-07
This is a first piece of the GPU YUV decoder, which is the actual effect that performs the conversion. For now, it simply applies the conversion matrix, since it is all I need. I may add modes if different matrices need to be applied or if I add color profile support here. I'll try to keep these cls short and easy to review, but there should be a few of them coming once this one is in. BUG=skia: R=senorblanco@chromium.org, senorblanco@google.com, reed@google.com, bsalomon@google.com Author: sugoi@chromium.org Review URL: https://codereview.chromium.org/378503006