summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-06-03gstglbumper: Use the builtin MVP instead of doing P * MV * vertex.HEADmasterEric Anholt2-1/+1
What you don't want is for the GLSL compiler to end up doing two matrix multiplications at runtime instead of one.
2010-06-03gstgldisplay: Consolidate a texture sample in upload_YUY2_UYVY.Eric Anholt1-2/+3
Reduces the shader from 30 to 26 instructions, including removing a texture sample. No significant difference in runtime.
2010-06-03gstgldisplay: Consolidate sampling of textures with the same coordinates.Eric Anholt1-8/+8
This further reduces the download_YUY2_UYVY shader from 42 to 38 Mesa instructions. Runtime was not significantly impacted.
2010-06-03gstgldisplay: Move a constant subexpression out of texture2DRect() args.Eric Anholt1-6/+8
Reduces the download_YUY2_UYVY shader from 53 to 42 Mesa instructions. Runtime wasn't significantly impacted.
2010-06-03Disable auto-indenting mess on gstgldisplay.c shaders.Eric Anholt1-24/+57
2010-06-03gstgldisplay: Tell GLSL we need ARB_draw_buffers in the shader using it.Eric Anholt1-0/+1
We should be checking for ARB_draw_buffers before even using this shader (potentially falling back to 3 passes otherwise?), but this will at least not anger the compiler if it does support it.
2010-06-01Automatic update of common submoduleDavid Schleef1-0/+0
From 17f89e5 to 47683c1
2010-06-01Automatic update of common submoduleDavid Schleef1-0/+0
From fd7ca04 to 17f89e5
2010-05-26Automatic update of common submoduleTim-Philipp Müller1-0/+0
From 357b0db to fd7ca04
2010-05-14Automatic update of common submoduleTim-Philipp Müller1-0/+0
From 4d67bd6 to 357b0db
2010-05-05glfilter/glmixer/gltestsrc/glupload: throw an element error if no parent binJulien Isorce4-22/+64
Fixes bug #602153
2010-05-04glimagesink: handle pixel-aspect-ratioJulien Isorce5-11/+91
2010-05-01blur: fix gaussian kernel computationFilippo Argiolas1-1/+1
2010-04-30blur: give up some accuracy for speedFilippo Argiolas8-44/+38
Settle with 7x7 gaussian convolution kernels, maybe slightly less accurate than previous 9x9 but fast enough to be able to use it on i915. About a 20% percent speed gain (again, roughly measured with videotestsrc and glimagesink sync=false). No noticeable rendering difference with current effects.
2010-04-30sin: get rid of hls conversion codeFilippo Argiolas1-39/+18
Get rid of buggy and complicated hls conversion code for the sin effect. The only thing needed was hue anyway and it is easily calculated using Preucil formula for rgb to polar coordinates conversion. Now works on i915 (removed all the IF blocks). Still needs some tuning, I wonder if it will ever work properly.
2010-04-30glupload: par is already handled in fixate_caps functionRoland Peffer1-7/+0
Fixes bug #593165
2010-04-30indent: gstglupload.cJulien Isorce1-9/+14
2010-04-29sobel: drop unused single pass sobel shaderFilippo Argiolas2-36/+0
Drop unused sobel shader, if anyone still needs it, git log is your friend.
2010-04-29xray: increase edges visibilityFilippo Argiolas1-1/+1
Some little fine tuning, still not completely satisfied yet.
2010-04-29xray: port to the new separable sobel convolutionFilippo Argiolas2-22/+115
Port xray effect to use the same sobel convolution just used in glfiltersobel. Now xray too works on i915 (a bit slow).
2010-04-29blur: forgot to add all the changes in previous commitFilippo Argiolas1-4/+6
2010-04-29blur: use draw_texture from glfilterFilippo Argiolas1-27/+2
2010-04-29laplacian: precalculate coordinatesFilippo Argiolas1-24/+29
Precalculate coordinates to avoid unneeded texture indirections. Now laplacian works on i915.
2010-04-29sobel: move some highly duplicated code into glfilterFilippo Argiolas3-104/+74
Add a new convenience function in GstGLFilter that just draws an input texture to a target texture using a simple shader with just a "tex" uniform sampler. Move draw_texture from glfiltersobel to glfilter. Still need to update other plugins to this.
2010-04-29blur: optimize coordinates calculationsFilippo Argiolas1-23/+19
Save 28 instructions on i915 (mainly redundant MOVs) and gain a 25% (roughly measured with videotestsrc and glimagesink sync=false) speed bump
2010-04-29sobel: convolve only lumaFilippo Argiolas4-114/+91
Rework Sobel a little bit again making it work as the old one: 1. desaturate input texture 2. calculate horizontal convolution for x gradient and vertical convolution for y gradient at the same time (halves the number of needed texture lookups) 3. store results in a single texture (red and green channel) 4. calculate remaining convolution (same as above switching vertical and horizontal) 5. calculate length of gradient using red and green as x and y components. Optimize wherever possible, store kernels as constants in the shaders, remove unneeded uniforms. Restore invert property carefully avoiding using IF. Still not sure if "full color" convolution will be needed, glfiltersobel is to be intended as a demo filter and xray, the only effect which uses sobel only needs edge intensity. Dropping it for now.
2010-04-29sobel: implement sobel filter using separable kernelsFilippo Argiolas4-60/+226
Reimplement sobel in a multipass fully separated convolution: - calculate x gradient map convolving first horizontally with blurring kernel and then vertically with differentiating kernel - calculate y gradient map convolving first vertically with blurring kernel and then horizonally with differentiating kernel - calculate length of the gradient vector Particular care was needed with normalization of the blurring kernel and with grey level offset of the differentiating one to prevent overflow of rgb values from the [0.0,1.0] range in intermediate passes. Now works on i915.
2010-04-29sobel: get rid of #version 120 dependent array constructorsFilippo Argiolas1-4/+11
2010-04-27glfilterreflectedscreen: improve behavior and add some propertiesPierre Pouzol2-79/+253
Fixes bug #612163
2010-04-26glfilterreflectedscreen: remove unused code (copied/pasted from glfilterglass)Julien Isorce1-16/+1
2010-04-26gleffectssources: fix some warnings from msvc9Julien Isorce2-3/+3
2010-04-26GNUStep build: add glfilterreflectedscreen sourcesJulien Isorce1-0/+1
2010-04-26win32 builds: add glfilterreflectedscreen sources to vs9 and codeblocksJulien Isorce2-0/+12
2010-04-26glfilterreflectedscreen: forgot to add sourcesPierre Pouzol2-0/+378
2010-04-26glfilterreflectedscreen: add new OpenGL Reflected Screen filterPierre Pouzol4-1/+14
Fixes bug #612163
2010-04-26GstGLDisplay: this is GL_DEPTH24_STENCIL8_EXT, not GL_DEPTH24_STENCIL8_EXTJulien Isorce1-1/+1
2010-04-26GstGLDisplay: enable stencil buffer when using framebuffer objects.Pierre Pouzol1-0/+22
Fixes Bug #612159
2010-04-26convolution: save some indirection grouping math and samplingFilippo Argiolas1-8/+26
Thanks to Eric Anholt I've finally understood (at least I hope) how to count texture indirections and save up some. Texture sampling dependent on the result of some math counts as an indirection phase. Grouped texture lookups with no math involved count as a single indirection. Math on the coordinates count as indirection. So the best thing is to group all the math involving coordinates and then do all the lookups. This saves enough indirections to make glfilterblur and glow effect work, albeit a bit slowly, on i915.
2010-04-26configure.ac: better error message if neither GL nor EGLJulien Isorce1-5/+10
Fixes bug #605121
2010-04-26doap: update repository info from cvs->gitTim-Philipp Müller1-5/+4
2010-04-25laplacian: remove unused norm_const and norm_offset uniformsFilippo Argiolas1-9/+7
Remove unused uniforms from the laplacian filter. Also remove if kernel[i] != 0 checks so that it compiles where IF is not available. Again, big thanks to Eric Anholt for the hints.
2010-04-25laplacian: Avoid using GLSL 1.20 features in a non-#versioned shader.Eric Anholt1-4/+10
Fixes compile on Mesa.
2010-04-25rgb_to_curve: save up a texture indirectionFilippo Argiolas1-2/+1
Apparently assigning gl_TexCoord to a temp count as an indirection. Using it directly avoids it and limits indirections to four not exceeding i915 limit. Now xpro effect works on i915.
2010-04-25multiply: fix a compilation error with Apple compilerVinson Lee1-1/+1
Fix multiply_fragment_source to compile with Apple GLSL compiler. https://bugzilla.gnome.org/show_bug.cgi?id=616748
2010-04-24twirl: get rid of polar coordinates conversionFilippo Argiolas1-5/+9
Get rid of polar coordinates in the twirl effect. The same can be done using a rotation matrix, saving alu instructions and, most of all, avoiding the use of the evil atan() function (which uses IF operators). Calculate rotation angle in a saner, understandable way. Works on i915! (Hope it still works elsewhere too as I'm not able to test at the moment)
2010-04-24tunnel: get rid of polar coordinates conversionFilippo Argiolas1-7/+5
Get rid of polar coordinates in the tunnel effect as the same can easily be done just clamping the radius and multiplying. Remove the evil atan() call that uses branching and a lot of unneeded alu instructions. Now works on i915!
2010-04-24convolution: generate gaussian kernel on the flyFilippo Argiolas8-93/+74
Generate a normalized gaussian kernel with given size and standard deviation on the fly. Remove "norm_const" uniform from convolution shaders and provide a normalized kernel instead. Remove norm_offset uniform as it was always zero, will reintroduce it if really needed in the future. Thanks to Eric Anholt for suggesting it. Save some ALU instruction calculating directly the coordinate for texture lookup instead of summing an offset. Still exceed maximum indirect texture lookups on i915, the only solution I see is using a 3x3 kernel.
2010-04-24convolution: reduce the number of register usedFilippo Argiolas1-22/+6
Reduce the number of register calculating texture lookup offset on the fly. It was just a simple sequence, no need to store it in a array. Fixes maximum number of registers exceeded error with i915. Still exceed maximum indirect texture lookups and maximum ALU instructions. Maybe we should gave up some blur goodness and use lightly more little kernels.
2010-04-24convolution: don't check kernel[i] to be non zeroFilippo Argiolas1-8/+4
Apparently saving up some texture lookup for zero kernel elements is definitely not worth the use of branching. This way convolution fragment programs also work where IF operator is not supported (tested on i915 and nouveau). See also discussion on bug #615696. Thanks to Eric Anholt for spotting this.
2010-04-24blur: use common shader sourcesFilippo Argiolas1-36/+1
Port blur filter to use the common convolution shaders in gstgleffectssources.c. This reduces code duplication and, incidentally, the shaders in the common file were already updated to not use array constructor and to not depend on #version 120. First step towards bug #615696 fixing.