Commit Graph

36351 Commits

Author SHA1 Message Date
Roland Scheidegger
17c9d7eea7 llvmpipe: limit the number of fragment shader variants kept around
llvmpipe can create a large number of shader variants for a single shader
(which are quite big), and they were only ever deleted if the shader itself
was deleted. This is especially apparent in things like glean
blendFunc where a new variant is created for every different subtest, chewing
up all memory.
This change limits the numbers of fragment shader variants (for all shaders)
which are kept around to a fixed number. If that would be exceeded a fixed
portion of the cached variants is deleted (since without tracking the used
variants this involves flushing we don't want to delete only one).
Always the least recently used variants (from all shaders together) are
deleted.
For now this is all per-context.
Both the number of how many variants are cached (1024) as well as how many
will be deleted at once (1/4 of the cache size) are just rough guesses and
subject to further optimization.
2010-06-18 13:52:17 +01:00
Ian Romanick
c93b8f1d2c linker: Add some function header comments 2010-06-17 20:37:38 -07:00
Ian Romanick
4230cfdb42 TODO: Add note about initializers for constants 2010-06-17 20:37:17 -07:00
Ian Romanick
ce03088406 Allow initializers for uniforms 2010-06-17 20:09:34 -07:00
Ian Romanick
c648a124b2 Don't link shaders by default
Add a command line option to trigger linking.  This "fixes" all the
failing test cases.  Oops.
2010-06-17 19:51:48 -07:00
Marek Olšák
ff8e1452df r300g: fix hardlocks in occlusion queries
Early Z test (=ZTOP) must be disabled before a query is started,
otherwise the GPU is dead. The order of emitted registers matters more
than you might think.

This fixes hardlocks in sauerbraten.
2010-06-18 02:17:29 +02:00
Marek Olšák
3c351e2c83 r300g: debug option for fake occlusion queries 2010-06-18 02:17:17 +02:00
Ian Romanick
832dfa58b2 linker: Initial bits of the linker
No linking is done yet, but some of the semantic checking is done.
2010-06-17 15:04:20 -07:00
Ian Romanick
705fb01b59 Use glsl_program instead of an open-coded vector of shaders 2010-06-17 12:59:45 -07:00
Ian Romanick
3f09c2508a Add glsl_program that is similar to Mesa's gl_shader_program 2010-06-17 12:59:27 -07:00
Ian Romanick
f8fe53ca2e Change glsl_program to glsl_shader 2010-06-17 12:54:24 -07:00
Ian Romanick
6fd9fb23de Compile multiple shaders listed on the command line 2010-06-17 12:22:16 -07:00
Ian Romanick
8ce55dbd92 Extract compilation to a separate routine
Pull all of the code that actually compiles shaders into a separate
function.  Use a glsl_program to track data about the compiled shader.
2010-06-17 12:01:18 -07:00
Ian Romanick
869b6f680f Add glsl_program that is similar to Mesa's gl_program
This will be used as the header for individual compilation units.
2010-06-17 12:00:25 -07:00
Zack Rusin
4320a451a3 draw: implement triangle strips with adjacency in geometry shader 2010-06-17 13:21:38 -04:00
Zack Rusin
f542a2770a draw: implement triangle lists with adjacency support in gs 2010-06-17 12:05:15 -04:00
Zack Rusin
06b854752f draw: fix a silly error 2010-06-17 11:13:18 -04:00
Zack Rusin
eb33dd6954 draw: implement line strip adjacency 2010-06-17 10:54:44 -04:00
Zack Rusin
dc8f64c537 draw: implement lines with adjacency in geometry shaders 2010-06-17 10:48:23 -04:00
Zack Rusin
91862051f9 draw: validate stream output buffers
fixes a crash.
2010-06-17 10:47:10 -04:00
Zack Rusin
c85971da31 draw: fix some unsigned issue
spotted by Vinson
2010-06-17 05:00:50 -04:00
Chia-I Wu
da39d5d3b4 egl: s/EGL_DISPLAY/EGL_PLATFORM/.
A platform is already used to mean a window system in EGL.  No need to
use a different term.
2010-06-17 16:30:26 +08:00
Chia-I Wu
6f690caddc egl: s/_EGL_PLATFORM/_EGL_OS/ and s/POSIX/UNIX/.
A platform means a native window system in EGL.  Use OS that follows
Gallium instead.
2010-06-17 16:05:18 +08:00
Chia-I Wu
8f3e48ee2c st/egl: Build sw/fbdev winsys for fbdev backend.
Target egl_fbdev_swrast.so needs sw/fbdev/libfbdev.a.
2010-06-17 14:13:30 +08:00
Marek Olšák
c3c2023323 r300g: more reasonable MSPOS defaults in error path 2010-06-17 05:14:24 +02:00
Marek Olšák
6771622e22 r300g: fix surface leaks 2010-06-17 05:11:07 +02:00
Corbin Simpson
1e6d51e805 gallium/docs: GLSL glossary entry. 2010-06-16 18:58:18 -07:00
Corbin Simpson
f98c462770 gallium/docs: Explain DFRACEXP/DLDEXP. 2010-06-16 18:58:18 -07:00
Corbin Simpson
dbc95e8edc gallium/docs: Remove unneeded "doubles", add double blurb. 2010-06-16 18:58:18 -07:00
Corbin Simpson
9d4cb6ea36 gallium/docs: Label opcodes by capability bits. 2010-06-16 18:58:18 -07:00
Corbin Simpson
92867dcc42 gallium/docs: R and RG texture swizzles.
We *did* reach an agreement on this a few months ago, and now the docs
reflect it. However, we never got around to UV and Z...
2010-06-16 18:58:18 -07:00
Corbin Simpson
e7d05f1f0d gallium/docs: Flesh out the distro information.
I'm not sure I picked the best voice here. I might come back to this
later.
2010-06-16 18:58:18 -07:00
Corbin Simpson
517a4fb051 gallium/docs: Fix RST error. 2010-06-16 18:58:18 -07:00
Vinson Lee
2412188453 r300g: Fix uninitialized variable warnings in error path. 2010-06-16 17:56:00 -07:00
Vinson Lee
84178547df intel: Remove unnecessary headers. 2010-06-16 17:44:26 -07:00
Zack Rusin
638a80bc07 draw: make sure we correctly iterate over output buffers on stream out
we kept overwriting the first attribute of a vertex in a single-stream-
out-buffer case
2010-06-16 15:56:17 -04:00
Zack Rusin
509ff13d06 graw: remove wrong test 2010-06-16 15:10:21 -04:00
Zack Rusin
0b8e198027 draw: add stream output decomposition file 2010-06-16 15:03:55 -04:00
Zack Rusin
287531772c draw: rewrite stream output to handle all the dark corners
register masks, multiple output buffers, multiple primitives,
non-linear vertices (elts) and stride semantics.
2010-06-16 14:43:56 -04:00
Zack Rusin
668fa68019 translate: don't crash on elts paths with instances 2010-06-16 14:43:56 -04:00
Corbin Simpson
e41ad8d2c5 r300g: Fix up resolve.
Yay for old code.
2010-06-16 11:01:34 -07:00
Corbin Simpson
61145c0d5c r300g: Fix MSAA state size. 2010-06-16 10:54:09 -07:00
Corbin Simpson
8ecca392da r300g: Don't multisample non-32-bpp render targets. 2010-06-16 10:54:09 -07:00
Corbin Simpson
68cefb423a r300g: Finish resolve function. 2010-06-16 10:54:08 -07:00
Corbin Simpson
e163fc0b15 r300g: Add resource resolve function. 2010-06-16 10:54:08 -07:00
Corbin Simpson
a91fea65dc r300g: Moar MSAA setup.
Need to just add the resolve, then go switch to new DRM and test.
2010-06-16 10:54:08 -07:00
Corbin Simpson
3784b0fa69 r300g: Fix indentation.
I could *not* let this slide since I'm on a 78-char-wide terminal.
2010-06-16 10:54:08 -07:00
Corbin Simpson
5c58618406 r300g: Old MSAA code from before gallium-msaa. 2010-06-16 10:54:06 -07:00
Alan Hourihane
867478b6f6 util: add alloc check 2010-06-16 18:10:34 +01:00
Alan Hourihane
51729b5119 draw: add alloc check 2010-06-16 18:02:21 +01:00