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