mutter/tests/conform
Neil Roberts 20657d6245 pipeline-cache: Use a special trimmed down pipeline for the key
When a pipeline is added to the cache, a normal copy would previously be
made to use as the key in the hash table. This copy keeps a reference
to the real pipeline which means all of the resources it contains are
retained forever, even if they aren't necessary to generate the hash.

This patch changes it to create a trimmed down copy that only has the
state necessary to generate the hash. A new function called
_cogl_pipeline_deep_copy is added which makes a new pipeline that is
directly a child of the root pipeline. It then copies over the
pertinent state from the original pipeline. The pipeline state is
copied using the existing _cogl_pipeline_copy_differences function.
There was no equivalent function for the layer state so I have added
one.

That way the pipeline key doesn't have the texture data state and it
doesn't hold a reference to the original pipeline so it should be much
cheaper to keep around.

Reviewed-by: Robert Bragg <robert@linux.intel.com>

(cherry picked from commit e27e01c1215e7e7c7c0183ded11dd769bb112c5c)
2013-04-04 13:38:43 +01:00
..
config.env.in tests: Improve thoroughness and reporting of make test 2012-02-24 14:42:31 +00:00
Makefile.am Conformance test to check whether the pipeline cache holds textures 2013-04-04 13:37:51 +01:00
run-tests.sh tests: Differentiate between known failures and missing requirements 2013-01-22 17:48:06 +00:00
test-alpha-test.c tests: update inline with master 2013-01-22 17:48:06 +00:00
test-alpha-textures.c Add a conformance test using alpha textures 2013-01-22 17:48:06 +00:00
test-atlas-migration.c Convert the test-atlas-migration test to a standalone Cogl test 2012-08-06 14:27:42 +01:00
test-backface-culling.c tests: update inline with master 2013-01-22 17:48:06 +00:00
test-bitmask.c Switch use of primitive glib types to c99 equivalents 2012-08-06 14:27:39 +01:00
test-blend-strings.c tests: update inline with master 2013-01-22 17:48:06 +00:00
test-color-mask.c tests: update inline with master 2013-01-22 17:48:06 +00:00
test-conform-main.c pipeline-cache: Use a special trimmed down pipeline for the key 2013-04-04 13:38:43 +01:00
test-copy-replace-texture.c Add test to verify replacing a layer doesn't leak the pipeline parent 2013-03-19 17:53:43 +00:00
test-custom-attributes.c tests: Don't report success when the test is skipped 2013-01-22 17:48:06 +00:00
test-depth-test.c tests: update inline with master 2013-01-22 17:48:06 +00:00
test-euler-quaternion.c tests: update inline with master 2013-01-22 17:48:06 +00:00
test-fixed.c Adds cogl_framebuffer_draw_[*_]rectangle functions 2012-03-20 12:33:40 +00:00
test-fixtures.c Adds cogl_framebuffer_draw_[*_]rectangle functions 2012-03-20 12:33:40 +00:00
test-framebuffer-get-bits.c Add a test for getting the component sizes from different fbs 2013-01-22 17:48:18 +00:00
test-gles2-context.c test-gles2-context: Read pixels using GL_RGBA not GL_RGB 2013-02-08 12:20:33 +00:00
test-just-vertex-shader.c tests: Don't report success when the test is skipped 2013-01-22 17:48:06 +00:00
test-launcher.sh.in tests: Improve thoroughness and reporting of make test 2012-02-24 14:42:31 +00:00
test-layer-remove.c tests: update inline with master 2013-01-22 17:48:06 +00:00
test-map-buffer-range.c Allow propogation of OOM errors to apps 2013-01-22 17:48:07 +00:00
test-materials.c Switch use of primitive glib types to c99 equivalents 2012-08-06 14:27:39 +01:00
test-multitexture.c Adds CoglError api 2013-01-22 17:47:39 +00:00
test-no-gl-header.c Mass rename CLUTTER_COMPILATION to COGL_COMPILATION 2012-08-06 14:27:45 +01:00
test-npot-texture.c tests: update inline with master 2013-01-22 17:48:06 +00:00
test-object.c Adds cogl_framebuffer_draw_[*_]rectangle functions 2012-03-20 12:33:40 +00:00
test-offscreen.c Allow lazy texture storage allocation 2013-01-22 17:48:17 +00:00
test-path.c tests: update inline with master 2013-01-22 17:48:06 +00:00
test-pipeline-cache-unrefs-texture.c Conformance test to check whether the pipeline cache holds textures 2013-04-04 13:37:51 +01:00
test-pipeline-uniforms.c tests: Don't report success when the test is skipped 2013-01-22 17:48:06 +00:00
test-pipeline-user-matrix.c tests: update inline with master 2013-01-22 17:48:06 +00:00
test-pixel-buffer.c Fix handling of binding errors when uploading a full texture 2013-01-22 17:48:09 +00:00
test-point-size.c tests: update inline with master 2013-01-22 17:48:06 +00:00
test-point-sprite.c tests: update inline with master 2013-01-22 17:48:06 +00:00
test-premult.c tests: update inline with master 2013-01-22 17:48:06 +00:00
test-primitive-and-journal.c Add a test to check interleaving primitives and the journal 2013-02-19 11:06:59 +00:00
test-primitive.c tests: update inline with master 2013-01-22 17:48:06 +00:00
test-read-texture-formats.c tests: update inline with master 2013-01-22 17:48:06 +00:00
test-readpixels.c Switch use of primitive glib types to c99 equivalents 2012-08-06 14:27:39 +01:00
test-snippets.c Add fragment and vertex snippet hooks for global declarations 2013-02-27 14:43:55 +00:00
test-sparse-pipeline.c tests: update inline with master 2013-01-22 17:48:06 +00:00
test-sub-texture.c tests: update inline with master 2013-01-22 17:48:06 +00:00
test-texture-3d.c tests: Don't report success when the test is skipped 2013-01-22 17:48:06 +00:00
test-texture-get-set-data.c tests: port test-texture-get-set-data to be standalone 2013-01-22 17:48:09 +00:00
test-texture-mipmaps.c Switch use of primitive glib types to c99 equivalents 2012-08-06 14:27:39 +01:00
test-texture-pixmap-x11.c Switch use of primitive glib types to c99 equivalents 2012-08-06 14:27:39 +01:00
test-texture-rectangle.c Switch use of primitive glib types to c99 equivalents 2012-08-06 14:27:39 +01:00
test-utils.c conform: explicitly check value of boolean env vars 2013-02-15 17:45:03 +00:00
test-utils.h test-write-texture-formats: Add fuzziness to the pixel comparisons 2013-01-22 18:00:11 +00:00
test-version.c Add a cogl-version header 2012-08-06 14:27:40 +01:00
test-vertex-buffer-contiguous.c Switch use of primitive glib types to c99 equivalents 2012-08-06 14:27:39 +01:00
test-vertex-buffer-interleved.c Switch use of primitive glib types to c99 equivalents 2012-08-06 14:27:39 +01:00
test-vertex-buffer-mutability.c Switch use of primitive glib types to c99 equivalents 2012-08-06 14:27:39 +01:00
test-viewport.c Switch use of primitive glib types to c99 equivalents 2012-08-06 14:27:39 +01:00
test-wrap-modes.c tests: update inline with master 2013-01-22 17:48:06 +00:00
test-wrap-rectangle-textures.c win32: Minor build fixes for building for win32 2013-02-21 15:20:55 +00:00
test-write-texture-formats.c test-write-texture-formats: Add fuzziness to the pixel comparisons 2013-01-22 18:00:11 +00:00