From 4f005bade376d15ee60e90ca45a831aff9725087 Mon Sep 17 00:00:00 2001 From: marha Date: Wed, 26 Oct 2011 10:58:41 +0200 Subject: libX11 libXft mesa mkfontscale pixman xserver git update 26 okt 2011 --- mesalib/docs/viewperf.html | 134 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 mesalib/docs/viewperf.html (limited to 'mesalib/docs/viewperf.html') diff --git a/mesalib/docs/viewperf.html b/mesalib/docs/viewperf.html new file mode 100644 index 000000000..cef584fd8 --- /dev/null +++ b/mesalib/docs/viewperf.html @@ -0,0 +1,134 @@ + + +Viewperf Issues + + + + + +

Viewperf Issues

+ +

+This page lists known issues with +SPEC Viewperf 11 +when running on Mesa-based drivers. +

+ +

+The Viewperf data sets are basically GL API traces that are recorded from +CAD applications, then replayed in the Viewperf framework. +

+ +

+The primary problem with these traces is they blindly use features and +OpenGL extensions that were supported by the OpenGL driver when the trace +was recorded, +but there's no checks to see if those features are supported by the driver +when playing back the traces with Viewperf. +

+ +

+These issues have been reported to the SPEC organization in the hope that +they'll be fixed in the future. +

+ + + +

Catia-03 tests 3, 4, 8

+ +

+These tests use features of the + +GL_NV_fragment_program2 and + +GL_NV_vertex_program3 extensions without checking if the driver supports +them. +

+

+When Mesa tries to compile the vertex/fragment programs it generates errors +(which Viewperf ignores). +Subsequent drawing calls become no-ops and the rendering is incorrect. +

+ + + +

sw-02 tests 1, 2, 4

+ +

+These tests depend on the +GL_NV_primitive_restart extension. +

+ +

+If the Mesa driver doesn't support this extension the rendering will +be incorrect and the test will fail. +

+ + +

Lightwave-01 test 3

+ +

+This test uses a number of mipmapped textures, but the textures are +incomplete because the last/smallest mipmap level (1 x 1 pixel) is +never specified. +

+ +

+A trace captured with +API trace +shows this sequences of calls like this: + +

+2504 glBindTexture(target = GL_TEXTURE_2D, texture = 55)
+2505 glTexImage2D(target = GL_TEXTURE_2D, level = 0, internalformat = GL_RGBA, width = 512, height = 512, border = 0, format = GL_RGB, type = GL_UNSIGNED_SHORT, pixels = blob(1572864))
+2506 glTexImage2D(target = GL_TEXTURE_2D, level = 1, internalformat = GL_RGBA, width = 256, height = 256, border = 0, format = GL_RGB, type = GL_UNSIGNED_SHORT, pixels = blob(393216))
+2507 glTexImage2D(target = GL_TEXTURE_2D, level = 2, internalformat = GL_RGBA, width = 128, height = 128, border = 0, format = GL_RGB, type = GL_UNSIGNED_SHORT, pixels = blob(98304))
+[...]
+2512 glTexImage2D(target = GL_TEXTURE_2D, level = 7, internalformat = GL_RGBA, width = 4, height = 4, border = 0, format = GL_RGB, type = GL_UNSIGNED_SHORT, pixels = blob(96))
+2513 glTexImage2D(target = GL_TEXTURE_2D, level = 8, internalformat = GL_RGBA, width = 2, height = 2, border = 0, format = GL_RGB, type = GL_UNSIGNED_SHORT, pixels = blob(24))
+2514 glTexParameteri(target = GL_TEXTURE_2D, pname = GL_TEXTURE_MIN_FILTER, param = GL_LINEAR_MIPMAP_LINEAR)
+2515 glTexParameteri(target = GL_TEXTURE_2D, pname = GL_TEXTURE_WRAP_S, param = GL_REPEAT)
+2516 glTexParameteri(target = GL_TEXTURE_2D, pname = GL_TEXTURE_WRAP_T, param = GL_REPEAT)
+2517 glTexParameteri(target = GL_TEXTURE_2D, pname = GL_TEXTURE_MAG_FILTER, param = GL_NEAREST)
+
+ +

+Note that one would expect call 2514 to be glTexImage(level=9, width=1, +height=1) but it's not there. +

+ +

+The minification filter is GL_LINEAR_MIPMAP_LINEAR and the texture's +GL_TEXTURE_MAX_LEVEL is 1000 (the default) so a full mipmap is expected. +

+ +

+Later, these incomplete textures are bound before drawing calls. +According to the GL specification, if a fragment program or fragment shader +is being used, the sampler should return (0,0,0,1) ("black") when sampling +from an incomplete texture. +This is what Mesa does and the resulting rendering is darker than it should +be. +

+ +

+It appears that NVIDIA's driver (and possibly AMD's driver) detects this case +and returns (1,1,1,1) (white) which causes the rendering to appear brighter +and match the reference image (however, AMD's rendering is much +brighter than NVIDIA's). +

+ +

+If the fallback texture created in _mesa_get_fallback_texture() is +initialized to be full white instead of full black the rendering appears +correct. +However, we have no plans to implement this work-around in Mesa. + +

+ + + + -- cgit v1.2.3