Commit graph

11990 commits

Author SHA1 Message Date
Christian König
772b25e1f3 Merge remote branch 'origin/master' into pipe-video
Conflicts:
	src/gallium/drivers/r600/r600_pipe.c
	src/gallium/drivers/r600/r600_texture.c
2010-12-11 13:43:44 +01:00
Jerome Glisse
b22c8e8bbc r600g: fix bo size when creating bo from handle
Spoted by Alex Diomin

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-12-10 11:17:27 -05:00
Christian König
ab130400cf [g3dvl] move z-coord generation for multiple render targets into vertex shader 2010-12-10 12:05:30 +01:00
Christian König
4a8420513d [g3dvl] move idct stage 1 scaling into matrix 2010-12-10 11:31:17 +01:00
Christian König
680f118138 [g3dvl] double buffering seems to be enough 2010-12-10 11:05:11 +01:00
Chia-I Wu
83bdd402aa targets/egl: Improve st_GL.so loading.
When the application is not linked to any libGL*.so, loading st_GL.so
would give

  /usr/local/lib/egl/st_GL.so: undefined symbol: _glapi_tls_Context

In that case, load libGL.so and try again.  This works because
util_dl_open loads with RTLD_GLOBAL.

Fix "clear" OpenGL ES 1.1 demo.
2010-12-10 11:01:05 +08:00
Chia-I Wu
6efd963a23 target/egl: Fix misleading debug message.
When the name of the module is NULL, the process itself is dlopen()ed.
Do not print

  libEGL debug: searching for st module (null)
2010-12-10 11:00:31 +08:00
Christian König
9c296be7d6 [g3dvl] make render targets full configureable 2010-12-10 02:56:15 +01:00
Brian Paul
becc4bb90c draw/llvm: don't flush in vs_llvm_delete()
Fixes piglit glx-shader-sharing crash.

When shaders are shared by multiple contexts, the shader's draw context
pointer may point to a previously destroyed context.  Dereferencing the
context pointer will lead to a crash.

In this case, simply removing the flushing code avoids the crash (the
exec and sse shader paths don't flush here either).

There's a deeper issue here, however, that needs examination.  Shaders
should not keep pointers to contexts since contexts might get destroyed
at any time.

NOTE: This is a candidate for the 7.10 branch (after this has been
tested for a while).
2010-12-09 18:41:22 -07:00
Brian Paul
70ca064454 draw/llvm: remove redundant comment 2010-12-09 18:40:48 -07:00
Brian Paul
bd995cf6c0 draw/llvm: remove extraneous conditional 2010-12-09 18:40:48 -07:00
Christian König
593a2cf8c5 [g3dvl] move interlaced dct handling into vertex shader 2010-12-10 01:27:21 +01:00
Christian König
1fb4bf84d5 [g3dvl] move frame predition handling vom fragment into vertex shader 2010-12-10 00:29:59 +01:00
Christian König
cf234984f4 [g3dvl] avoid some ELSE blocks 2010-12-10 00:13:32 +01:00
Vinson Lee
af5f7b3260 r600g: Fix SCons build. 2010-12-09 14:03:58 -08:00
Christian König
00e60387fc [g3dvl] try a different buffer aproach 2010-12-09 22:34:43 +01:00
Christian König
25cdc79f32 [g3dvl] fix buffer handling in mc code 2010-12-09 22:28:31 +01:00
Christian König
7c4887f5ae [g3dvl] fix idct matrix upload 2010-12-09 22:27:03 +01:00
Jerome Glisse
121079bd67 r600g: indentation cleanup
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-12-09 16:16:22 -05:00
Jerome Glisse
7055068eea r600g: specialized upload manager
Allow important performance increase by doing hw specific implementation
of the upload manager helper. Drop the range flushing that is not hit with
this code (and wasn't with previous neither). Performance improvement are
mostly visible on slow CPU.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-12-09 16:07:05 -05:00
Jerome Glisse
15753cf54d r600g: avoid using pb* helper we are loosing previous cpu cycle with it
r600g is up to a point where all small CPU cycle matter and pb* turn
high on profile. It's mostly because pb try to be generic and thus
trigger unecessary check for r600g driver. To avoid having too much
abstraction & too much depth in the call embedded everythings into
r600_bo. Make code simpler & faster. The performance win highly depend
on the CPU & application considered being more important on slower CPU
and marginal/unoticeable on faster one.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-12-09 16:07:01 -05:00
José Fonseca
cdd4f04f80 llvmpipe: Plug fence leaks. 2010-12-09 16:48:26 +00:00
Christian König
1e3f5e9520 [g3dvl] split mc code into state and buffer 2010-12-08 23:37:57 +01:00
Christian König
3b2ef2d007 [g3dvl] move buffer mapping/unmapping out of flush 2010-12-08 22:35:30 +01:00
Christian König
877edb6785 [g3dvl] replace IF THEN ELSE with CMP statement 2010-12-08 21:28:38 +01:00
Christian König
1482b9a7f3 [g3dvl] remove shadow buffering of vertex buffers 2010-12-08 20:48:34 +01:00
Christian König
8df88ca10f [g3dvl] remove mb type handler structure 2010-12-08 19:41:01 +01:00
Christian König
050e7035f2 [g3dvl] move macro block type handling into shaders part 3 2010-12-08 19:18:55 +01:00
Christian König
5790ca5289 [g3dvl] moving macroblock type handling into shaders part 2 2010-12-08 18:42:48 +01:00
Christian König
081b01fd60 [g3dvl] start moving macroblock type handling into shaders 2010-12-08 18:26:58 +01:00
Christian König
b680476b52 [g3dvl] allways use all motion vectors
reprogramming the vertex buffers takes more time than pumping
all motion vectors through the vertex shader
2010-12-08 16:11:29 +01:00
Christian König
d8d8939dd5 [g3dvl] split empty block handling
Empty block handling is split between vertex shader (x-axis)
and fragment shader (y-axis).
2010-12-08 14:50:28 +01:00
Christian König
0b749d6dcb [g3dvl] split idct code into state and buffers 2010-12-08 02:12:24 +01:00
Jerome Glisse
b7617346dc r600g: fix userspace fence against lastest kernel
R6XX GPU doesn't like to have two partial flush writting
back to memory in row without a prior flush of the pipeline.
Add PS_PARTIAL_FLUSH to flush all work between the CP and
the ES, GS, VS, PS shaders.

Thanks a lot to Alban Browaeys (prahal on irc) for investigating
this issue.

Signed-off-by: Alban Browaeys <prahal@yahoo.com>
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-12-07 17:54:56 -05:00
Jerome Glisse
69251fc4cd r600g: remove dead code
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-12-07 16:14:18 -05:00
Christian König
22b4acb206 [g3dvl] use buffer width instead of texture size or vs constants 2010-12-07 21:23:14 +01:00
Christian König
bfb4fb057d [g3dvl] move vertex buffer handling into vl_vertex_buffer.c 2010-12-07 20:13:37 +01:00
Marek Olšák
d8b861987d r300g: also revalidate the SWTCL vertex buffer after its reallocation 2010-12-07 19:26:28 +01:00
Marek Olšák
4953ba6a71 r300g: validate buffers only if any of bound buffers is changed
This prevents needless buffer validation (CS space checking).
2010-12-07 08:46:18 +01:00
Marek Olšák
78068a5fbf r300g: cache packet dwords of 3D_LOAD_VBPNTR in a command buffer if possible
It's not always possible to preprocess the content of 3D_LOAD_VBPNTR
in a command buffer, because the offset to all vertex buffers (which
the packet depends on) is derived from the "start" parameter of draw_arrays
and the "indexBias" parameter of draw_elements, but we can at least lazily
make a command buffer for the case when offset == 0, which should occur
most of the time.
2010-12-07 06:42:05 +01:00
Marek Olšák
857d107bfe u_blitter: use util_is_format_compatible in the assert 2010-12-07 06:22:38 +01:00
Christian König
eb7452e267 [g3dvl] rework pot buffer handling and flushing 2010-12-07 00:29:02 +01:00
Jerome Glisse
e0d554ab78 r600g: remove useless flush map
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-12-06 15:50:50 -05:00
Jerome Glisse
afc56b1861 r600g: avoid useless shader rebuild at draw call
Avoid rebuilding constant shader state at each draw call,
factor out spi update that might change at each draw call.
Best would be to update spi only when revealent states
change (likely only flat shading & sprite point).

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-12-06 15:50:50 -05:00
Jerome Glisse
fa86fc564a r600g: build fetch shader from vertex elements
Vertex elements change are less frequent than draw call, those to
avoid rebuilding fetch shader to often build the fetch shader along
vertex elements. This also allow to move vertex buffer setup out
of draw path and make update to it less frequent.

Shader update can still be improved to only update SPI regs (based
on some rasterizer state like flat shading or point sprite ...).

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-12-06 15:50:50 -05:00
Brian Paul
4fc62a074c gallium/util: minor formatting fixes 2010-12-06 09:46:45 -07:00
Chia-I Wu
8f2a974cf2 mapi: Rewrite mapi_abi.py to get rid of preprocessor magic.
The preprocessor magic in mapi was nothing but obfuscation.  Rewrite
mapi_abi.py to generate real C code.

This commit removes the hack added in
43121f2086.
2010-12-06 15:40:37 +08:00
Chia-I Wu
5ae4b6693a egl: _eglFilterArray should not allocate.
Otherwise, when it is called from within a driver, the caller cannot
free the returned data (on Windows).
2010-12-06 15:40:37 +08:00
Christian König
6484898752 [g3dvl] move mapping/unmapping of buffers one layer up 2010-12-05 22:30:38 +01:00
Henri Verbeet
4409435614 r600g: Cleanup fetch shader resources in r600_pipe_shader_destroy(). 2010-12-05 18:44:44 +01:00