Eric Anholt
0f59b9a95d
i965: Update gen6 paths for the streaming rework.
2010-06-12 21:47:31 -07:00
Eric Anholt
7ad26b0030
i965: Stream out CC unit state.
...
before:
[ # ] backend test min(s) median(s) stddev. count
[ 0] gl firefox-talos-gfx 31.791 32.287 1.11% 6/6
after:
[ 0] gl firefox-talos-gfx 31.198 31.675 0.96% 6/6
2010-06-12 21:47:31 -07:00
Zack Rusin
db05972807
draw/gs: copy the outputs only if we emitted something
2010-06-12 10:45:42 -04:00
Zack Rusin
1551b4da8c
softpipe: small cleanup
2010-06-12 10:45:42 -04:00
Joakim Sindholt
60cfed6c70
r300/compiler: fix scons build
2010-06-12 15:40:14 +02:00
Vinson Lee
b6cfca42e3
i965: Remove unnecessary header.
2010-06-12 01:44:43 -07:00
Vinson Lee
e0b211d07c
scons: Disable i965g build if using MSVC.
...
i965g uses C99 constructs that are not supported by MSVC.
2010-06-11 18:43:58 -07:00
Vinson Lee
de51485000
scons: Disable i915g build if using MSVC.
...
i915g uses C99 constructs that are not supported by MSVC.
2010-06-11 18:42:57 -07:00
Tom Stellard
3eca311b72
r300/compiler: Handle more complex conditionals in loops.
2010-06-11 22:06:59 +02:00
Tom Stellard
bde34a76b5
r300/compiler: Fix warning.
2010-06-11 22:06:59 +02:00
Tom Stellard
f7269cf26a
r300/compiler: Handle SGT and SLE at the beginning of loops.
2010-06-11 22:06:59 +02:00
Tom Stellard
0125f5270b
r300/compiler: Verify assumptions about opcode types.
2010-06-11 22:06:59 +02:00
Tom Stellard
6f1b6814bc
r300/compiler: Unroll loops that decrement the counter.
...
e.g. for(i=10; i>0; i--)
2010-06-11 22:06:58 +02:00
Tom Stellard
0f1109ce36
r300/compiler: Unroll loops that have a constant number of iterations.
...
This only works with for loops that increment the counter.
e.g. for(i=0; i<10; i++)
2010-06-11 22:06:58 +02:00
Tom Stellard
622fd4d061
r300/compiler: Implement simple loop emulation
...
The loop emulation unrolls loops as may times as possbile while still
keeping the shader program below the maximum instruction limit. At this
point, there are no checks for constant conditionals. This is only enabled
for fragment shaders.
2010-06-11 22:06:58 +02:00
Eric Anholt
108264e859
i965: Remove the surface key used to generate constant surfaces.
...
We had to fill out all that junk when using the cache, but no more.
2010-06-11 12:21:23 -07:00
Eric Anholt
34c82804ed
i965: Warning fixes from the i965-streaming merge.
2010-06-11 12:09:26 -07:00
Zack Rusin
53bd9796a1
gallium/softpipe/draw: support samplers in geometry shaders
2010-06-11 13:31:52 -04:00
Zack Rusin
2396967038
tgsi: support 2d indirect addressing
2010-06-11 10:35:24 -04:00
Eric Anholt
27bc2de546
i965: Use the state base address to avoid relocations.
...
This makes the binding table code simpler, and is required for gen6,
which requires binding table addresses to be under 64k offset from the
surface state base addr.
No significant change in performance on firefox-talos-gfx.
2010-06-11 00:16:15 -07:00
Eric Anholt
8ad3fdc967
i965: GC the last two arguments to brw_cache_data.
...
Now that the binding table is streamed indirect state, they were
always NULL/0.
2010-06-11 00:16:15 -07:00
Eric Anholt
309c011641
i965: Remove brw_state_cache_bo_delete now that it's unused again.
2010-06-11 00:16:09 -07:00
Eric Anholt
178414eba4
i965: Remove caching of surface state objects.
...
It turns out that computing a 56 byte key to look up a 20-byte object
out of a hash table was some sort of a bad idea. Whoops.
before:
[ # ] backend test min(s) median(s) stddev. count
[ 0] gl firefox-talos-gfx 37.799 38.203 0.39% 6/6
after:
[ 0] gl firefox-talos-gfx 34.761 34.784 0.17% 5/6
2010-06-11 00:15:59 -07:00
Eric Anholt
73de09f265
i965: Convert the binding table to streamed indirect state.
...
This slightly reduces reduces cairo-gl firefox-talos-gfx runtime on my
Ironlake:
before:
[ # ] backend test min(s) median(s) stddev. count
[ 0] gl firefox-talos-gfx 38.236 38.383 0.43% 5/6
after:
[ 0] gl firefox-talos-gfx 37.799 38.203 0.39% 6/6
It turns out the cost of caching these objects and looking them up in
the cache again is greater than the cost of just computing the object
again, particularly when the overhead of having a separate BO to pin
is removed.
(Those that are paying close attention will note that this is a
reversal of the path I was moving the driver in a couple of years ago.
The major thing that has changed is that back then all state was
recomputed when we wrapped the streaming state buffer, including
recompiling our precious programs. Now, we're uncaching just the
objects that are cheap to compute, and retaining caching of expensive
objects)
2010-06-11 00:15:56 -07:00
Eric Anholt
118a47623a
i965: Split constant buffer setup from its surface state/binding state.
...
This was bothering me when redoing the binding tables.
2010-06-11 00:15:56 -07:00
Eric Anholt
321014156b
i965: Add support for streaming indirect state rather than caching objects.
2010-06-11 00:15:56 -07:00
Eric Anholt
f5bb775fd1
i965: Set the CC VP state immediately on state change.
...
The cache lookup of these two little floats was .12% of total CPU time
on firefox-talos-gfx because we did it any time commonly-changed state
changed. On the other hand, updating the CC VP bo immediately whenver
CC VP state changes is a .07% overhead due to putting a driver hoook
in glEnable().
2010-06-11 00:15:56 -07:00
Eric Anholt
315ef0312a
i965: Update old comment about state cache sizing.
2010-06-11 00:15:56 -07:00
Eric Anholt
3b3278519a
i965: Move no_batch_wrap assertion out across the area we're trying to verify.
...
It's more likely that we wrap badly in state setup than in the little
primitive packet.
2010-06-11 00:15:55 -07:00
Brian Paul
0a48949a11
i965: remove UseProgram driver callback
...
It just duplicated the default/core Mesa behaviour.
2010-06-10 23:33:51 -06:00
Brian Paul
ec2b92f98c
mesa: rename src/mesa/shader/ to src/mesa/program/
2010-06-10 23:23:13 -06:00
Chia-I Wu
411bba3446
docs: Update EGL doc.
...
Update for recent removal of demos and additions of new displays and
functions.
2010-06-11 12:55:09 +08:00
Chia-I Wu
ebed500fae
st/egl: Do not build non-working driver combinations.
...
The KMS backend requires a hardware pipe driver. Do not build
egl_kms_swrast. Also, only build egl_fbdev_swrast for fbdev backend.
It is a pure software backend.
2010-06-11 12:55:09 +08:00
Chia-I Wu
71580edc01
st/egl: Add fbdev backend.
...
The backend is pure software. It implements EGL_MESA_screen_surface
extension, and is kept simple by only exporting the current mode.
2010-06-11 12:55:09 +08:00
Brian Paul
f1c5043f94
mesa: move shader/slang/* sources to main/slang/*
...
Reduce the source tree depth a bit.
2010-06-10 22:48:16 -06:00
Brian Paul
7936e06657
mesa: move nvprogram.[ch] to main/
2010-06-10 22:37:31 -06:00
Brian Paul
412cddf954
mesa: move arbprogram.[ch] to main/
2010-06-10 22:32:21 -06:00
Brian Paul
70c8d29b6b
mesa: move atifragshader.[ch] to main/
2010-06-10 22:24:45 -06:00
Brian Paul
936605fc8a
mesa: move uniforms.c to main/
2010-06-10 22:24:37 -06:00
Chia-I Wu
ce0c837f60
winsys: Add fbdev software winsys.
...
This is a simple winsys that mmap()s the framebuffer device and
memcpy()s the contents of display targets to the framebuffer device for
displaying.
2010-06-11 12:23:38 +08:00
Brian Paul
a37b2219d6
mesa: refactor shader api / object code
...
Remove the unneeded ctx->Driver hooks for shader-related functions.
Move state and API-related things into main/.
2010-06-10 20:32:57 -06:00
Brian Paul
050eed095a
i965: remove UseProgram driver callback
...
It just duplicated the default/core Mesa behaviour.
2010-06-10 20:06:45 -06:00
Vinson Lee
628cf02d67
st/egl: Remove unnecessary header.
2010-06-10 15:52:04 -07:00
Vinson Lee
77cbf32e61
intel: Remove unnecessary header.
2010-06-10 15:47:37 -07:00
Zack Rusin
9896b7ebeb
draw: forgot to add a file
2010-06-10 15:25:30 -04:00
Zack Rusin
29639932f7
draw: rewrite geometry shader pipeline
...
done to handle strips correctly as inputs - we need to decompose
the strips
2010-06-10 15:23:01 -04:00
Zack Rusin
226ff53e63
gs: give our test an option of rendering a strip
2010-06-10 13:20:15 -04:00
Zack Rusin
4d0baa73c9
draw: geometry shader fixes
...
don't overwrite the inputs and make sure the correct primitive
is used on entry
2010-06-10 13:07:27 -04:00
Zack Rusin
9ef6d34f7e
draw: make sure that the gs never outputs more data than we allocated for
2010-06-10 05:15:55 -04:00
Vinson Lee
9be40de087
r300g: Fix memory leak on error path.
2010-06-10 00:33:25 -07:00