+++ /dev/null
-trivial-clear-color src/trivial clear-color
-trivial-clear-fbo src/trivial clear-fbo
-trivial-clear-fbo-scissor src/trivial clear-fbo-scissor
-trivial-clear-fbo-tex src/trivial clear-fbo-tex
-trivial-clear-random src/trivial clear-random
-trivial-clear-repeat src/trivial clear-repeat
-trivial-clear-scissor src/trivial clear-scissor
-trivial-clear-undefined src/trivial clear-undefined
-trivial-createwin src/trivial createwin
-trivial-dlist-begin-call-end src/trivial dlist-begin-call-end
-trivial-dlist-dangling src/trivial dlist-dangling
-trivial-dlist-degenerate src/trivial dlist-degenerate
-trivial-dlist-edgeflag src/trivial dlist-edgeflag
-trivial-dlist-edgeflag-dangling src/trivial dlist-edgeflag-dangling
-trivial-dlist-flat-tri src/trivial dlist-flat-tri
-trivial-dlist-mat-tri src/trivial dlist-mat-tri
-trivial-dlist-recursive-call src/trivial dlist-recursive-call
-trivial-dlist-tri-flat-tri src/trivial dlist-tri-flat-tri
-trivial-dlist-tri-mat-tri src/trivial dlist-tri-mat-tri
-trivial-draw2arrays src/trivial draw2arrays
-trivial-drawarrays src/trivial drawarrays
-trivial-drawelements src/trivial drawelements
-trivial-drawelements-large src/trivial drawelements-large
-trivial-drawrange src/trivial drawrange
-trivial-flat-clip src/trivial flat-clip
-trivial-fs-tri src/trivial fs-tri
-trivial-line src/trivial line
-trivial-line-clip src/trivial line-clip
-trivial-line-cull src/trivial line-cull
-trivial-line-flat src/trivial line-flat
-trivial-line-smooth src/trivial line-smooth
-trivial-line-stipple-wide src/trivial line-stipple-wide
-trivial-line-userclip src/trivial line-userclip
-trivial-line-userclip-clip src/trivial line-userclip-clip
-trivial-line-userclip-nop src/trivial line-userclip-nop
-trivial-line-userclip-nop-clip src/trivial line-userclip-nop-clip
-trivial-line-wide src/trivial line-wide
-trivial-line-xor src/trivial line-xor
-trivial-lineloop src/trivial lineloop
-trivial-lineloop-clip src/trivial lineloop-clip
-trivial-lineloop-elts src/trivial lineloop-elts
-trivial-linestrip src/trivial linestrip
-trivial-linestrip-clip src/trivial linestrip-clip
-trivial-linestrip-flat-stipple src/trivial linestrip-flat-stipple
-trivial-linestrip-stipple src/trivial linestrip-stipple
-trivial-linestrip-stipple-wide src/trivial linestrip-stipple-wide
-trivial-long-fixed-func src/trivial long-fixed-func
-trivial-pgon-mode src/trivial pgon-mode
-trivial-point src/trivial point
-trivial-point-clip src/trivial point-clip
-trivial-point-param src/trivial point-param
-trivial-point-sprite src/trivial point-sprite
-trivial-point-wide src/trivial point-wide
-trivial-point-wide-smooth src/trivial point-wide-smooth
-trivial-poly src/trivial poly
-trivial-poly-flat src/trivial poly-flat
-trivial-poly-flat-clip src/trivial poly-flat-clip
-trivial-poly-flat-unfilled-clip src/trivial poly-flat-unfilled-clip
-trivial-poly-unfilled src/trivial poly-unfilled
-trivial-quad src/trivial quad
-trivial-quad-clip src/trivial quad-clip
-trivial-quad-clip-all-vertices src/trivial quad-clip-all-vertices
-trivial-quad-clip-nearplane src/trivial quad-clip-nearplane
-trivial-quad-degenerate src/trivial quad-degenerate
-trivial-quad-flat src/trivial quad-flat
-trivial-quad-offset-factor src/trivial quad-offset-factor
-trivial-quad-offset-unfilled src/trivial quad-offset-unfilled
-trivial-quad-offset-units src/trivial quad-offset-units
-trivial-quad-tex-2d src/trivial quad-tex-2d
-trivial-quad-tex-3d src/trivial quad-tex-3d
-trivial-quad-tex-alpha src/trivial quad-tex-alpha
-trivial-quad-tex-pbo src/trivial quad-tex-pbo
-trivial-quad-tex-sub src/trivial quad-tex-sub
-trivial-quad-unfilled src/trivial quad-unfilled
-trivial-quad-unfilled-clip src/trivial quad-unfilled-clip
-trivial-quad-unfilled-stipple src/trivial quad-unfilled-stipple
-trivial-quads src/trivial quads
-trivial-quadstrip src/trivial quadstrip
-trivial-quadstrip-clip src/trivial quadstrip-clip
-trivial-quadstrip-cont src/trivial quadstrip-cont
-trivial-quadstrip-flat src/trivial quadstrip-flat
-trivial-readpixels src/trivial readpixels
-trivial-sub-tex src/trivial sub-tex
-trivial-tex-quads src/trivial tex-quads
-trivial-tri src/trivial tri
-trivial-tri-alpha src/trivial tri-alpha
-trivial-tri-alpha-tex src/trivial tri-alpha-tex
-trivial-tri-array-interleaved src/trivial tri-array-interleaved
-trivial-tri-blend src/trivial tri-blend
-trivial-tri-blend-color src/trivial tri-blend-color
-trivial-tri-blend-max src/trivial tri-blend-max
-trivial-tri-blend-min src/trivial tri-blend-min
-trivial-tri-blend-revsub src/trivial tri-blend-revsub
-trivial-tri-blend-sub src/trivial tri-blend-sub
-trivial-tri-clear src/trivial tri-clear
-trivial-tri-clip src/trivial tri-clip
-trivial-tri-cull src/trivial tri-cull
-trivial-tri-cull-both src/trivial tri-cull-both
-trivial-tri-dlist src/trivial tri-dlist
-trivial-tri-edgeflag src/trivial tri-edgeflag
-trivial-tri-edgeflag-array src/trivial tri-edgeflag-array
-trivial-tri-fbo src/trivial tri-fbo
-trivial-tri-fbo-tex src/trivial tri-fbo-tex
-trivial-tri-fbo-tex-mip src/trivial tri-fbo-tex-mip
-trivial-tri-flat src/trivial tri-flat
-trivial-tri-flat-clip src/trivial tri-flat-clip
-trivial-tri-fog src/trivial tri-fog
-trivial-tri-fp src/trivial tri-fp
-trivial-tri-fp-const-imm src/trivial tri-fp-const-imm
-trivial-tri-lit src/trivial tri-lit
-trivial-tri-lit-material src/trivial tri-lit-material
-trivial-tri-logicop-none src/trivial tri-logicop-none
-trivial-tri-logicop-xor src/trivial tri-logicop-xor
-trivial-tri-mask-tri src/trivial tri-mask-tri
-trivial-tri-multitex-vbo src/trivial tri-multitex-vbo
-trivial-tri-orig src/trivial tri-orig
-trivial-tri-point-line-clipped src/trivial tri-point-line-clipped
-trivial-tri-query src/trivial tri-query
-trivial-tri-repeat src/trivial tri-repeat
-trivial-tri-scissor-tri src/trivial tri-scissor-tri
-trivial-tri-square src/trivial tri-square
-trivial-tri-stencil src/trivial tri-stencil
-trivial-tri-stipple src/trivial tri-stipple
-trivial-tri-tex src/trivial tri-tex
-trivial-tri-tex-1d src/trivial tri-tex-1d
-trivial-tri-tex-3d src/trivial tri-tex-3d
-trivial-tri-tri src/trivial tri-tri
-trivial-tri-unfilled src/trivial tri-unfilled
-trivial-tri-unfilled-clip src/trivial tri-unfilled-clip
-trivial-tri-unfilled-edgeflag src/trivial tri-unfilled-edgeflag
-trivial-tri-unfilled-fog src/trivial tri-unfilled-fog
-trivial-tri-unfilled-point src/trivial tri-unfilled-point
-trivial-tri-unfilled-smooth src/trivial tri-unfilled-smooth
-trivial-tri-unfilled-tri src/trivial tri-unfilled-tri
-trivial-tri-unfilled-tri-lit src/trivial tri-unfilled-tri-lit
-trivial-tri-unfilled-userclip src/trivial tri-unfilled-userclip
-trivial-tri-unfilled-userclip-stip src/trivial tri-unfilled-userclip-stip
-trivial-tri-userclip src/trivial tri-userclip
-trivial-tri-viewport src/trivial tri-viewport
-trivial-tri-z src/trivial tri-z
-trivial-tri-z-9 src/trivial tri-z-9
-trivial-tri-z-eq src/trivial tri-z-eq
-trivial-trifan src/trivial trifan
-trivial-trifan-flat src/trivial trifan-flat
-trivial-trifan-flat-clip src/trivial trifan-flat-clip
-trivial-trifan-flat-unfilled-clip src/trivial trifan-flat-unfilled-clip
-trivial-trifan-unfilled src/trivial trifan-unfilled
-trivial-tristrip src/trivial tristrip
-trivial-tristrip-clip src/trivial tristrip-clip
-trivial-tristrip-flat src/trivial tristrip-flat
-trivial-vbo-drawarrays src/trivial vbo-drawarrays
-trivial-vbo-drawelements src/trivial vbo-drawelements
-trivial-vbo-drawrange src/trivial vbo-drawrange
-trivial-vbo-noninterleaved src/trivial vbo-noninterleaved
-trivial-vbo-tri src/trivial vbo-tri
-trivial-vp-array src/trivial vp-array
-trivial-vp-array-hf src/trivial vp-array-hf
-trivial-vp-array-int src/trivial vp-array-int
-trivial-vp-clip src/trivial vp-clip
-trivial-vp-line-clip src/trivial vp-line-clip
-trivial-vp-tri src/trivial vp-tri
-trivial-vp-tri-cb src/trivial vp-tri-cb
-trivial-vp-tri-cb-pos src/trivial vp-tri-cb-pos
-trivial-vp-tri-cb-tex src/trivial vp-tri-cb-tex
-trivial-vp-tri-imm src/trivial vp-tri-imm
-trivial-vp-tri-invariant src/trivial vp-tri-invariant
-trivial-vp-tri-swap src/trivial vp-tri-swap
-trivial-vp-tri-tex src/trivial vp-tri-tex
-trivial-vp-unfilled src/trivial vp-unfilled
-
-demos_arbfplight src/demos arbfplight
-demos_arbfslight src/demos arbfslight
-demos_arbocclude src/demos arbocclude
-demos_arbocclude2 src/demos arbocclude2
-demos_bounce src/demos bounce
-demos_clearspd src/demos clearspd
-demos_copypix src/demos copypix
-demos_cubemap src/demos cubemap
-demos_cuberender src/demos cuberender
-demos_dinoshade src/demos dinoshade
-demos_dissolve src/demos dissolve
-demos_drawpix src/demos drawpix
-demos_engine src/demos engine
-demos_fbo_firecube src/demos fbo_firecube
-demos_fbotexture src/demos fbotexture
-demos_fire src/demos fire
-demos_fogcoord src/demos fogcoord
-demos_fplight src/demos fplight
-demos_fslight src/demos fslight
-demos_gamma src/demos gamma
-demos_gearbox src/demos gearbox
-demos_gears src/demos gears
-demos_geartrain src/demos geartrain
-demos_glinfo src/demos glinfo
-demos_gloss src/demos gloss
-demos_gltestperf src/demos gltestperf
-demos_ipers src/demos ipers
-demos_isosurf src/demos isosurf
-demos_lodbias src/demos lodbias
-demos_morph3d src/demos morph3d
-demos_multiarb src/demos multiarb
-demos_paltex src/demos paltex
-demos_pointblast src/demos pointblast
-demos_projtex src/demos projtex
-demos_rain src/demos rain
-demos_ray src/demos ray
-demos_readpix src/demos readpix
-demos_reflect src/demos reflect
-demos_renormal src/demos renormal
-demos_shadowtex src/demos shadowtex
-demos_singlebuffer src/demos singlebuffer
-demos_spectex src/demos spectex
-demos_spriteblast src/demos spriteblast
-demos_stex3d src/demos stex3d
-demos_teapot src/demos teapot
-demos_terrain src/demos terrain
-demos_tessdemo src/demos tessdemo
-demos_texcyl src/demos texcyl
-demos_texenv src/demos texenv
-demos_textures src/demos textures
-demos_trispd src/demos trispd
-demos_tunnel src/demos tunnel
-demos_tunnel2 src/demos tunnel2
-demos_vao_demo src/demos vao_demo
-demos_winpos src/demos winpos
-
-#fp-fp src/fp fp-tri # XXX: parameterized
-fp-point-position src/fp point-position
-fp-tri-depth src/fp tri-depth
-fp-tri-depth2 src/fp tri-depth2
-fp-tri-depthwrite src/fp tri-depthwrite
-fp-tri-depthwrite2 src/fp tri-depthwrite2
-fp-tri-param src/fp tri-param
-fp-tri-tex src/fp tri-tex
-
-#fpglsl-fp-tri src/fpglsl fp-tri
-
-glsl-array src/glsl array
-glsl-bezier src/glsl bezier
-glsl-bitmap src/glsl bitmap
-glsl-brick src/glsl brick
-glsl-bump src/glsl bump
-glsl-convolutions src/glsl convolutions
-glsl-deriv src/glsl deriv
-glsl-fragcoord src/glsl fragcoord
-glsl-fsraytrace src/glsl fsraytrace
-glsl-geom-sprites src/glsl geom-sprites
-glsl-geom-stipple-lines src/glsl geom-stipple-lines
-glsl-geom-wide-lines src/glsl geom-wide-lines
-glsl-identity src/glsl identity
-glsl-linktest src/glsl linktest
-glsl-mandelbrot src/glsl mandelbrot
-glsl-multinoise src/glsl multinoise
-glsl-multitex src/glsl multitex
-glsl-noise src/glsl noise
-glsl-noise2 src/glsl noise2
-glsl-pointcoord src/glsl pointcoord
-glsl-points src/glsl points
-glsl-samplers src/glsl samplers
-glsl-shadow_sampler src/glsl shadow_sampler
-glsl-shtest src/glsl shtest
-glsl-skinning src/glsl skinning
-glsl-texaaline src/glsl texaaline
-glsl-texdemo1 src/glsl texdemo1
-glsl-toyball src/glsl toyball
-glsl-trirast src/glsl trirast
-glsl-twoside src/glsl twoside
-glsl-vert-or-frag-only src/glsl vert-or-frag-only
-glsl-vert-tex src/glsl vert-tex
-glsl-vsraytrace src/glsl vsraytrace
-
-#gs_gs-tri src/gs gs-tri
-
-#perf-copytex src/perf copytex
-#perf-drawoverhead src/perf drawoverhead
-#perf-fbobind src/perf fbobind
-#perf-fill src/perf fill
-#perf-genmipmap src/perf genmipmap
-#perf-readpixels src/perf readpixels
-#perf-swapbuffers src/perf swapbuffers
-#perf-teximage src/perf teximage
-#perf-vbo src/perf vbo
-#perf-vertexrate src/perf vertexrate
-
-redbook-aaindex src/redbook aaindex
-redbook-aapoly src/redbook aapoly
-redbook-aargb src/redbook aargb
-redbook-accanti src/redbook accanti
-redbook-accpersp src/redbook accpersp
-redbook-alpha src/redbook alpha
-redbook-alpha3D src/redbook alpha3D
-redbook-anti src/redbook anti
-redbook-bezcurve src/redbook bezcurve
-redbook-bezmesh src/redbook bezmesh
-redbook-checker src/redbook checker
-redbook-clip src/redbook clip
-redbook-colormat src/redbook colormat
-redbook-combiner src/redbook combiner
-redbook-convolution src/redbook convolution
-redbook-cube src/redbook cube
-redbook-cubemap src/redbook cubemap
-redbook-depthcue src/redbook depthcue
-redbook-dof src/redbook dof
-redbook-double src/redbook double
-redbook-drawf src/redbook drawf
-redbook-feedback src/redbook feedback
-redbook-fog src/redbook fog
-redbook-fogcoord src/redbook fogcoord
-redbook-fogindex src/redbook fogindex
-redbook-font src/redbook font
-redbook-hello src/redbook hello
-redbook-histogram src/redbook histogram
-redbook-image src/redbook image
-redbook-light src/redbook light
-redbook-lines src/redbook lines
-redbook-list src/redbook list
-redbook-material src/redbook material
-redbook-minmax src/redbook minmax
-redbook-mipmap src/redbook mipmap
-redbook-model src/redbook model
-redbook-movelight src/redbook movelight
-redbook-multisamp src/redbook multisamp
-redbook-multitex src/redbook multitex
-redbook-mvarray src/redbook mvarray
-redbook-nurbs src/redbook nurbs
-redbook-pickdepth src/redbook pickdepth
-redbook-picksquare src/redbook picksquare
-redbook-plane src/redbook plane
-redbook-planet src/redbook planet
-redbook-pointp src/redbook pointp
-redbook-polyoff src/redbook polyoff
-redbook-polys src/redbook polys
-redbook-quadric src/redbook quadric
-redbook-robot src/redbook robot
-redbook-sccolorlight src/redbook sccolorlight
-redbook-scene src/redbook scene
-redbook-scenebamb src/redbook scenebamb
-redbook-sceneflat src/redbook sceneflat
-redbook-select src/redbook select
-redbook-shadowmap src/redbook shadowmap
-redbook-smooth src/redbook smooth
-redbook-stencil src/redbook stencil
-redbook-stroke src/redbook stroke
-redbook-surface src/redbook surface
-redbook-surfpoints src/redbook surfpoints
-redbook-teaambient src/redbook teaambient
-redbook-teapots src/redbook teapots
-redbook-tess src/redbook tess
-redbook-tesswind src/redbook tesswind
-redbook-texbind src/redbook texbind
-redbook-texgen src/redbook texgen
-redbook-texprox src/redbook texprox
-redbook-texsub src/redbook texsub
-redbook-texture3d src/redbook texture3d
-redbook-texturesurf src/redbook texturesurf
-redbook-torus src/redbook torus
-redbook-trim src/redbook trim
-redbook-unproject src/redbook unproject
-redbook-varray src/redbook varray
-redbook-wrap src/redbook wrap
-
-samples-accum src/samples accum
-samples-bitmap1 src/samples bitmap1
-samples-bitmap2 src/samples bitmap2
-samples-blendeq src/samples blendeq
-samples-blendxor src/samples blendxor
-samples-copy src/samples copy
-samples-cursor src/samples cursor
-samples-depth src/samples depth
-samples-eval src/samples eval
-samples-fog src/samples fog
-samples-font src/samples font
-samples-line src/samples line
-samples-logo src/samples logo
-samples-nurb src/samples nurb
-samples-oglinfo src/samples oglinfo
-samples-olympic src/samples olympic
-samples-overlay src/samples overlay
-samples-point src/samples point
-samples-prim src/samples prim
-samples-quad src/samples quad
-samples-select src/samples select
-samples-shape src/samples shape
-samples-sphere src/samples sphere
-samples-star src/samples star
-samples-stencil src/samples stencil
-samples-stretch src/samples stretch
-samples-texture src/samples texture
-samples-tri src/samples tri
-samples-wave src/samples wave
-
-#slang-cltest src/slang cltest
-#slang-sotest src/slang sotest
-#slang-vstest src/slang vstest
-
-tests_afsmultiarb src/tests afsmultiarb
-tests_antialias src/tests antialias
-tests_arbfpspec src/tests arbfpspec
-tests_arbfptest1 src/tests arbfptest1
-tests_arbfptexture src/tests arbfptexture
-tests_arbfptrig src/tests arbfptrig
-tests_arbgpuprog src/tests arbgpuprog
-tests_arbnpot src/tests arbnpot
-tests_arbnpot-mipmap src/tests arbnpot-mipmap
-tests_arbvptest1 src/tests arbvptest1
-tests_arbvptest3 src/tests arbvptest3
-tests_arbvptorus src/tests arbvptorus
-tests_arbvpwarpmesh src/tests arbvpwarpmesh
-tests_arraytexture src/tests arraytexture
-tests_auxbuffer src/tests auxbuffer
-tests_blendxor src/tests blendxor
-tests_blitfb src/tests blitfb
-tests_bufferobj src/tests bufferobj
-tests_bug_3050 src/tests bug_3050
-tests_bug_3101 src/tests bug_3101
-tests_bug_3195 src/tests bug_3195
-tests_bug_texstore_i8 src/tests bug_texstore_i8
-tests_bumpmap src/tests bumpmap
-tests_calibrate_rast src/tests calibrate_rast
-tests_condrender src/tests condrender
-#tests_copypixrate src/tests copypixrate # XXX: benchmark
-tests_cva src/tests cva
-tests_cva_huge src/tests cva_huge
-tests_cylwrap src/tests cylwrap
-tests_drawbuffers src/tests drawbuffers
-tests_drawbuffers2 src/tests drawbuffers2
-tests_drawstencil src/tests drawstencil
-tests_exactrast src/tests exactrast
-tests_ext422square src/tests ext422square
-tests_fbotest1 src/tests fbotest1
-tests_fbotest2 src/tests fbotest2
-tests_fbotest3 src/tests fbotest3
-#tests_fillrate src/tests fillrate # XXX: benchmark
-tests_floattex src/tests floattex
-tests_fogcoord src/tests fogcoord
-tests_fptest1 src/tests fptest1
-tests_fptexture src/tests fptexture
-tests_getteximage src/tests getteximage
-tests_glutfx src/tests glutfx
-tests_interleave src/tests interleave
-tests_invert src/tests invert
-tests_jkrahntest src/tests jkrahntest
-tests_lineclip src/tests lineclip
-tests_manytex src/tests manytex
-tests_mapbufrange src/tests mapbufrange
-tests_minmag src/tests minmag
-tests_mipgen src/tests mipgen
-tests_mipmap_comp src/tests mipmap_comp
-tests_mipmap_comp_tests src/tests mipmap_comp_tests
-tests_mipmap_limits src/tests mipmap_limits
-tests_mipmap_tunnel src/tests mipmap_tunnel
-tests_mipmap_view src/tests mipmap_view
-tests_multipal src/tests multipal
-tests_multitexarray src/tests multitexarray
-tests_multiwindow src/tests multiwindow
-tests_no_s3tc src/tests no_s3tc
-tests_occlude src/tests occlude
-tests_packedpixels src/tests packedpixels
-tests_pbo src/tests pbo
-tests_persp_hint src/tests persp_hint
-tests_prim src/tests prim
-tests_prog_parameter src/tests prog_parameter
-tests_quads src/tests quads
-tests_random src/tests random
-#tests_readrate src/tests readrate # XXX: benchmark
-tests_rubberband src/tests rubberband
-tests_scissor src/tests scissor
-tests_scissor-viewport src/tests scissor-viewport
-tests_seccolor src/tests seccolor
-tests_shader-interp src/tests shader-interp
-tests_shader_api src/tests shader_api
-tests_shadow-sample src/tests shadow-sample
-tests_sharedtex src/tests sharedtex
-tests_stencilreaddraw src/tests stencilreaddraw
-tests_stencilwrap src/tests stencilwrap
-tests_step src/tests step
-tests_streaming_rect src/tests streaming_rect
-tests_subtex src/tests subtex
-#tests_subtexrate src/tests subtexrate # XXX: benchmark
-tests_tex1d src/tests tex1d
-tests_texcmp src/tests texcmp
-tests_texcompress2 src/tests texcompress2
-tests_texcompsub src/tests texcompsub
-tests_texdown src/tests texdown
-tests_texfilt src/tests texfilt
-tests_texgenmix src/tests texgenmix
-tests_texleak src/tests texleak
-tests_texline src/tests texline
-tests_texobj src/tests texobj
-tests_texobjshare src/tests texobjshare
-tests_texrect src/tests texrect
-tests_unfilledclip src/tests unfilledclip
-tests_vparray src/tests vparray
-tests_vpeval src/tests vpeval
-tests_vptest1 src/tests vptest1
-tests_vptest2 src/tests vptest2
-tests_vptest3 src/tests vptest3
-tests_vptorus src/tests vptorus
-tests_vpwarpmesh src/tests vpwarpmesh
-tests_yuvrect src/tests yuvrect
-tests_yuvsquare src/tests yuvsquare
-tests_zbitmap src/tests zbitmap
-tests_zcomp src/tests zcomp
-tests_zdrawpix src/tests zdrawpix
-tests_zreaddraw src/tests zreaddraw
-
-#vp_vp-tris src/vp vp-tris
-#vpglsl_vp-tris src/vpglsl vp-tris
-
-xdemos_corender src/xdemos corender
-xdemos_glsync src/xdemos glsync
-#xdemos_glthreads src/xdemos glthreads # XXX: multithreaded
-xdemos_glxcontexts src/xdemos glxcontexts
-xdemos_glxdemo src/xdemos glxdemo
-xdemos_glxgears src/xdemos glxgears
-xdemos_glxgears_fbconfig src/xdemos glxgears_fbconfig
-xdemos_glxgears_pixmap src/xdemos glxgears_pixmap
-xdemos_glxheads src/xdemos glxheads
-xdemos_glxinfo src/xdemos glxinfo
-xdemos_glxpbdemo src/xdemos glxpbdemo
-xdemos_glxpixmap src/xdemos glxpixmap
-xdemos_glxsnoop src/xdemos glxsnoop
-xdemos_glxswapcontrol src/xdemos glxswapcontrol
-xdemos_manywin src/xdemos manywin
-xdemos_msctest src/xdemos msctest
-xdemos_multictx src/xdemos multictx
-xdemos_offset src/xdemos offset
-xdemos_omlsync src/xdemos omlsync
-xdemos_opencloseopen src/xdemos opencloseopen
-xdemos_overlay src/xdemos overlay
-xdemos_pbdemo src/xdemos pbdemo
-xdemos_pbinfo src/xdemos pbinfo
-xdemos_shape src/xdemos shape
-xdemos_sharedtex src/xdemos sharedtex
-#xdemos_sharedtex_mt src/xdemos sharedtex_mt # XXX: multithreaded
-xdemos_texture_from_pixmap src/xdemos texture_from_pixmap
-xdemos_wincopy src/xdemos wincopy
-xdemos_xfont src/xdemos xfont
-xdemos_xrotfontdemo src/xdemos xrotfontdemo
-xdemos_yuvrect_client src/xdemos yuvrect_client
+++ /dev/null
-# ogl-samples
-# http://www.opengl.org/sdk/docs/tutorials/OGLSamples/
-#
-# name cwd command args ...
-ogl-210-buffer-type build release/ogl-210-buffer-type
-ogl-210-buffer-update build release/ogl-210-buffer-update
-ogl-210-draw-elements build release/ogl-210-draw-elements
-ogl-210-draw-range build release/ogl-210-draw-range
-ogl-210-query-occlusion build release/ogl-210-query-occlusion
-ogl-210-rasterizer-viewport build release/ogl-210-rasterizer-viewport
-ogl-210-sampler-anisotropy-ext build release/ogl-210-sampler-anisotropy-ext
-ogl-210-sampler-filter build release/ogl-210-sampler-filter
-ogl-210-sampler-wrap build release/ogl-210-sampler-wrap
-ogl-210-test-scissor build release/ogl-210-test-scissor
-ogl-210-texture-2d build release/ogl-210-texture-2d
-ogl-210-texture-compressed-ext build release/ogl-210-texture-compressed-ext
-ogl-300-fbo-multisample build release/ogl-300-fbo-multisample
-ogl-300-test-alpha build release/ogl-300-test-alpha
-ogl-330-blend-index build release/ogl-330-blend-index
-ogl-330-blend-rtt build release/ogl-330-blend-rtt
-ogl-330-buffer-type build release/ogl-330-buffer-type
-ogl-330-buffer-uniform build release/ogl-330-buffer-uniform
-ogl-330-buffer-uniform-shared build release/ogl-330-buffer-uniform-shared
-ogl-330-buffer-update build release/ogl-330-buffer-update
-ogl-330-draw-instanced build release/ogl-330-draw-instanced
-ogl-330-draw-instanced-array build release/ogl-330-draw-instanced-array
-ogl-330-draw-instanced-array-dsa-gtc build release/ogl-330-draw-instanced-array-dsa-gtc
-ogl-330-draw-multiple build release/ogl-330-draw-multiple
-ogl-330-error-sampler-gather build release/ogl-330-error-sampler-gather
-ogl-330-error-sampler-offset build release/ogl-330-error-sampler-offset
-ogl-330-error-vao build release/ogl-330-error-vao
-ogl-330-fbo-blit build release/ogl-330-fbo-blit
-ogl-330-fbo-layered build release/ogl-330-fbo-layered
-ogl-330-fbo-mipmaps build release/ogl-330-fbo-mipmaps
-ogl-330-fbo-multisample build release/ogl-330-fbo-multisample
-ogl-330-fbo-multisample-custom-resolve build release/ogl-330-fbo-multisample-custom-resolve
-ogl-330-fbo-rtt build release/ogl-330-fbo-rtt
-ogl-330-fbo-rtt-texture-array build release/ogl-330-fbo-rtt-texture-array
-ogl-330-fbo-srgb build release/ogl-330-fbo-srgb
-ogl-330-glsl-discard build release/ogl-330-glsl-discard
-ogl-330-primitive-flat-shading build release/ogl-330-primitive-flat-shading
-ogl-330-primitive-smooth-shading build release/ogl-330-primitive-smooth-shading
-ogl-330-query-conditional build release/ogl-330-query-conditional
-ogl-330-query-occlusion build release/ogl-330-query-occlusion
-ogl-330-query-timer build release/ogl-330-query-timer
-ogl-330-rasterizer-viewport build release/ogl-330-rasterizer-viewport
-ogl-330-sampler-anisotropy-ext build release/ogl-330-sampler-anisotropy-ext
-ogl-330-sampler-fetch build release/ogl-330-sampler-fetch
-ogl-330-sampler-filter build release/ogl-330-sampler-filter
-ogl-330-sampler-object build release/ogl-330-sampler-object
-ogl-330-sampler-offset build release/ogl-330-sampler-offset
-ogl-330-sampler-wrap build release/ogl-330-sampler-wrap
-ogl-330-sync build release/ogl-330-sync
-ogl-330-test-scissor build release/ogl-330-test-scissor
-ogl-330-texture-2d build release/ogl-330-texture-2d
-ogl-330-texture-array build release/ogl-330-texture-array
-ogl-330-texture-buffer build release/ogl-330-texture-buffer
-ogl-330-texture-compressed-ext build release/ogl-330-texture-compressed-ext
-ogl-330-texture-cube build release/ogl-330-texture-cube
-ogl-330-texture-rect build release/ogl-330-texture-rect
-ogl-330-texture-streaming build release/ogl-330-texture-streaming
-ogl-330-texture-swizzle build release/ogl-330-texture-swizzle
-ogl-330-transform-feedback build release/ogl-330-transform-feedback
-ogl-400-blend-rtt build release/ogl-400-blend-rtt
-ogl-400-buffer-uniform build release/ogl-400-buffer-uniform
-ogl-400-buffer-uniform-shared-gtc build release/ogl-400-buffer-uniform-shared-gtc
-ogl-400-draw-indirect build release/ogl-400-draw-indirect
-ogl-400-error-sampler-fetch build release/ogl-400-error-sampler-fetch
-ogl-400-fbo-layered build release/ogl-400-fbo-layered
-ogl-400-fbo-multisample build release/ogl-400-fbo-multisample
-ogl-400-fbo-rtt build release/ogl-400-fbo-rtt
-ogl-400-fbo-rtt-texture-array build release/ogl-400-fbo-rtt-texture-array
-ogl-400-primitive-instanced build release/ogl-400-primitive-instanced
-ogl-400-primitive-smooth-shading build release/ogl-400-primitive-smooth-shading
-ogl-400-primitive-tessellation build release/ogl-400-primitive-tessellation
-ogl-400-program-64 build release/ogl-400-program-64
-ogl-400-program-subroutine build release/ogl-400-program-subroutine
-ogl-400-program-varying-blocks build release/ogl-400-program-varying-blocks
-ogl-400-program-varying-structs build release/ogl-400-program-varying-structs
-ogl-400-sampler-array build release/ogl-400-sampler-array
-ogl-400-sampler-array-gtc build release/ogl-400-sampler-array-gtc
-ogl-400-sampler-fetch build release/ogl-400-sampler-fetch
-ogl-400-sampler-gather build release/ogl-400-sampler-gather
-ogl-400-texture-buffer-rgb build release/ogl-400-texture-buffer-rgb
-ogl-400-texture-compressed-arb build release/ogl-400-texture-compressed-arb
-ogl-400-transform-feedback-object build release/ogl-400-transform-feedback-object
-ogl-410-debug-output-arb build release/ogl-410-debug-output-arb
-ogl-410-fbo-layered build release/ogl-410-fbo-layered
-ogl-410-fbo-multisample-dsa-ext build release/ogl-410-fbo-multisample-dsa-ext
-ogl-410-fbo-multisample-dsa-gtc build release/ogl-410-fbo-multisample-dsa-gtc
-ogl-410-fbo-multisample-position-amd build release/ogl-410-fbo-multisample-position-amd
-ogl-410-fbo-rtt-dsa-ext build release/ogl-410-fbo-rtt-dsa-ext
-ogl-410-primitive-bindless-nv build release/ogl-410-primitive-bindless-nv
-ogl-410-primitive-instanced build release/ogl-410-primitive-instanced
-ogl-410-primitive-tessellation-2 build release/ogl-410-primitive-tessellation-2
-ogl-410-primitive-tessellation-5 build release/ogl-410-primitive-tessellation-5
-ogl-410-program-64 build release/ogl-410-program-64
-ogl-410-program-binary build release/ogl-410-program-binary
-ogl-410-program-separate-dsa-gtc build release/ogl-410-program-separate-dsa-gtc
-ogl-410-program-varying-gtc build release/ogl-410-program-varying-gtc
-ogl-410-sampler-fetch-dsa-ext build release/ogl-410-sampler-fetch-dsa-ext
-ogl-410-texture-barrier-nv build release/ogl-410-texture-barrier-nv
-ogl-410-texture-copy-nv build release/ogl-410-texture-copy-nv
-ogl-410-texture-image-ext build release/ogl-410-texture-image-ext
+++ /dev/null
-#!/usr/bin/env python
-##########################################################################
-#
-# Copyright 2011 Jose Fonseca
-# All Rights Reserved.
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-#
-##########################################################################/
-
-'''Common test suite code.'''
-
-
-import math
-import optparse
-import os.path
-import re
-import signal
-import subprocess
-import sys
-import time
-
-import Image
-import ImageChops
-import ImageEnhance
-
-
-class Comparer:
- '''Image comparer.'''
-
- def __init__(self, ref_image, src_image, alpha = False):
- self.ref_im = Image.open(ref_image)
- self.src_im = Image.open(src_image)
-
- # Crop to the minimum size
- ref_w, ref_h = self.ref_im.size
- src_w, src_h = self.src_im.size
- w = min(ref_w, src_w)
- h = min(ref_h, src_h)
- self.ref_im = self.ref_im.crop((0, ref_h - h, w, ref_h))
- self.src_im = self.src_im.crop((0, src_h - h, w, src_h))
-
- # Ignore alpha
- if not alpha:
- self.ref_im = self.ref_im.convert('RGB')
- self.src_im = self.src_im.convert('RGB')
-
- self.diff = ImageChops.difference(self.src_im, self.ref_im)
-
- def write_diff(self, diff_image, fuzz = 0.05):
- # make a difference image similar to ImageMagick's compare utility
- mask = ImageEnhance.Brightness(self.diff).enhance(1.0/fuzz)
- mask = mask.convert('L')
-
- lowlight = Image.new('RGB', self.src_im.size, (0xff, 0xff, 0xff))
- highlight = Image.new('RGB', self.src_im.size, (0xf1, 0x00, 0x1e))
- diff_im = Image.composite(highlight, lowlight, mask)
-
- diff_im = Image.blend(self.src_im, diff_im, 0xcc/255.0)
- diff_im.save(diff_image)
-
- def precision(self):
- # See also http://effbot.org/zone/pil-comparing-images.htm
- h = self.diff.histogram()
- square_error = 0
- for i in range(1, 256):
- square_error += sum(h[i : 3*256: 256])*i*i
- rel_error = float(square_error*2 + 1) / float(self.diff.size[0]*self.diff.size[1]*3*255*255*2)
- bits = -math.log(rel_error)/math.log(2.0)
- return bits
-
- def ae(self, chantol = 4, pixeltol = 0.03):
- # Compute absolute error
- # chantol = color channel tolerance
- # pixeltol = ratio of pixels we allow to go completely off
-
- # TODO: this is approximate due to the grayscale conversion
- h = self.diff.convert('L').histogram()
-
- ae = sum(h[int(chantol) + 1 : 256])
-
- return ae <= pixeltol*self.diff.size[0]*self.diff.size[1]
-
-
-ansi_re = re.compile('\x1b\[[0-9]{1,2}(;[0-9]{1,2}){0,2}m')
-
-
-def ansi_strip(s):
- # http://www.theeggeadventure.com/wikimedia/index.php/Linux_Tips#Use_sed_to_remove_ANSI_colors
- return ansi_re.sub('', s)
-
-
-def popen(command, *args, **kwargs):
- if 'cwd' in kwargs:
- sys.stdout.write('cd %s && ' % kwargs['cwd'])
- if 'env' in kwargs:
- for name, value in kwargs['env'].iteritems():
- if value != os.environ.get(name, None):
- sys.stdout.write('%s=%s ' % (name, value))
- sys.stdout.write(' '.join(command) + '\n')
- sys.stdout.flush()
- return subprocess.Popen(command, *args, **kwargs)
-
-
-ignored_function_names = set([
- 'glGetString',
- 'glXGetCurrentDisplay',
- 'glXGetClientString',
- 'glXGetProcAddress',
- 'glXGetProcAddressARB',
- 'glXQueryVersion',
- 'glXGetVisualFromFBConfig',
- 'glXChooseFBConfig',
- 'glXCreateNewContext',
- 'glXMakeContextCurrent',
- 'glXQueryExtension',
- 'glXIsDirect',
-])
-
-
-class Report:
-
- def __init__(self, basedir):
- self.basedir = basedir
- if not os.path.exists(basedir):
- os.makedirs(basedir)
- self.html = open(os.path.join(basedir, 'index.html'), 'wt')
- self._header()
-
- def _header(self):
- self.html.write('<html>\n')
- self.html.write(' <body>\n')
- self.html.write(' <table border="1">\n')
- self.html.write(' <tr><th>Ref</th><th>Src</th><th>Δ</th></tr>\n')
-
- def _image_tag(self, image):
- url = os.path.relpath(image, self.basedir)
- self.html.write(' <td><a href="%s"><img src="%s"/></a></td>\n' % (url, url))
-
- def add_snapshot(self, ref_image, src_image, diff_image):
- self.html.write(' <tr>\n')
- self._image_tag(ref_image)
- self._image_tag(src_image)
- self._image_tag(diff_image)
- self.html.write(' </tr>\n')
- self.html.flush()
-
- def _footer(self):
- self.html.write(' </table>\n')
- self.html.write(' </body>\n')
- self.html.write('</html>\n')
-
- def __del__(self):
- self._footer()
- self.html.close()
-
-
-class TestCase:
-
- standalone = False
-
- max_frames = 1
-
- def __init__(self, name, args, cwd=None, build=None, results = '.'):
- self.name = name
- self.args = args
- self.cwd = cwd
- self.build = build
- self.results = results
-
- if not os.path.exists(results):
- os.makedirs(results)
-
-
- def _get_build_path(self, path):
- if self.build is not None:
- path = os.path.abspath(os.path.join(self.build, path))
- if not os.path.exists(path):
- sys.stderr.write('error: %s does not exist\n' % path)
- sys.exit(1)
- return path
-
- def run(self, report):
-
- trace = os.path.abspath(os.path.join(self.results, self.name + '.trace'))
- ref_prefix = os.path.abspath(os.path.join(self.results, self.name + '.ref.'))
- src_prefix = os.path.join(self.results, self.name + '.src.')
- diff_prefix = os.path.join(self.results, self.name + '.diff.')
-
- ld_preload = self._get_build_path('glxtrace.so')
-
- env = os.environ.copy()
- env['LD_PRELOAD'] = ld_preload
- env['TRACE_FILE'] = trace
- env['TRACE_SNAPSHOT'] = ref_prefix
- env['TRACE_FRAMES'] = str(self.max_frames)
-
- if self.standalone:
- p = popen(self.args, cwd=self.cwd)
- for i in range(3):
- time.sleep(1)
- if p.poll() is not None:
- break
- if p.returncode is None:
- p.terminate()
- elif p.returncode:
- sys.stdout.write('SKIP (app)\n')
- return
-
- p = popen(self.args, env=env, cwd=self.cwd)
- try:
- for i in range(5):
- time.sleep(1)
- if p.poll() is not None:
- break
- finally:
- if p.returncode is None:
- p.terminate()
- p.wait()
- elif p.returncode:
- if self.standalone:
- sys.stdout.write('FAIL (trace)\n')
- else:
- sys.stdout.write('SKIP (app)\n')
- return
-
- if not os.path.isfile(trace):
- sys.stdout.write('SKIP (no trace)\n')
- return
-
- p = popen([self._get_build_path('apitrace'), 'dump', '--color', trace], stdout=subprocess.PIPE)
- call_re = re.compile('^([0-9]+) (\w+)\(')
- swapbuffers = 0
- flushes = 0
- for orig_line in p.stdout:
- orig_line = orig_line.rstrip()
- line = ansi_strip(orig_line)
- mo = call_re.match(line)
- if mo:
- call_no = int(mo.group(1))
- function_name = mo.group(2)
- if function_name in ignored_function_names:
- continue
- if function_name == 'glXSwapBuffers':
- swapbuffers += 1
- if function_name in ('glFlush', 'glFinish'):
- flushes += 1
- p.wait()
- if p.returncode != 0:
- sys.stdout.write('FAIL (apitrace dump)\n')
- return
-
- args = [self._get_build_path('glretrace')]
- if swapbuffers:
- args += ['-db']
- frames = swapbuffers
- else:
- args += ['-sb']
- frames = flushes
- args += ['-s', src_prefix]
- args += [trace]
- p = popen(args, stdout=subprocess.PIPE)
- image_re = re.compile('^Wrote (.*\.png)$')
- images = []
- for line in p.stdout:
- line = line.rstrip()
- mo = image_re.match(line)
- if mo:
- image = mo.group(1)
- if image.startswith(src_prefix):
- image = image[len(src_prefix):]
- images.append(image)
- p.wait()
- if p.returncode != 0:
- sys.stdout.write('FAIL (glretrace)\n')
- return
-
- for image in images:
- ref_image = ref_prefix + image
- src_image = src_prefix + image
- diff_image = diff_prefix + image
-
- if not os.path.isfile(ref_image):
- continue
- assert os.path.isfile(src_image)
-
- comparer = Comparer(ref_image, src_image)
- match = comparer.ae()
- sys.stdout.write('%s: %s bits\n' % (image, comparer.precision()))
- if not match:
- comparer.write_diff(diff_image)
- report.add_snapshot(ref_image, src_image, diff_image)
- sys.stdout.write('FAIL (snapshot)\n')
- return
-
- sys.stdout.write('PASS\n')
-
-
-def main():
- # Parse command line options
- optparser = optparse.OptionParser(
- usage='\n\t%prog [options] -- program [args] ...',
- version='%%prog')
- optparser.add_option(
- '-B', '--build', metavar='PATH',
- type='string', dest='build', default=None,
- help='path to apitrace build')
- optparser.add_option(
- '-C', '--directory', metavar='PATH',
- type='string', dest='cwd', default=None,
- help='change to directory')
- optparser.add_option(
- '-R', '--results', metavar='PATH',
- type='string', dest='results', default='results',
- help='results directory [default=%default]')
-
- (options, args) = optparser.parse_args(sys.argv[1:])
- if not args:
- optparser.error('program must be specified')
-
- test = TestCase(
- name = os.path.basename(args[0]),
- args = args,
- cwd = options.cwd,
- build = options.build,
- results = options.results,
- )
-
- report = Report(options.results)
- test.run(report)
-
-
-if __name__ == '__main__':
- main()