Commit graph

30920 commits

Author SHA1 Message Date
Eric Anholt
85c978f38c glsl2: Start trying to hook up uniforms.
This should be resolved with linker.cpp's location assignment, as
currently we drop that location assignment on the ground.  However,
this gets basic programs using uniforms working for now.
2010-06-25 16:35:36 -07:00
Eric Anholt
0fd97db8b0 glsl2: Associate the GLenum for the type with builtin GLSL types. 2010-06-25 16:35:22 -07:00
Eric Anholt
bda27424cf glsl2: Use the parser state as the talloc context for dead code elimination.
This cuts runtime by around 20% from talloc_parent() lookups.
2010-06-25 13:38:38 -07:00
Eric Anholt
abc4e52992 glsl2: Emit OPCODE_END at the end of the Mesa program.
The 965 driver can now run a glsl2-generated shader!
2010-06-25 13:28:16 -07:00
Eric Anholt
582b73fe69 glsl2: Hook up constant parameters in ir_to_mesa. 2010-06-25 13:27:57 -07:00
Eric Anholt
ffc845a50a glsl2: Set InputsRead and OutputsWritten on the generated programs. 2010-06-25 12:52:01 -07:00
Eric Anholt
364fcd8ee1 glsl2: Start integrating ir_to_mesa.cpp into shader_api.h
The compiler is now called by the driver, and generates program
instructions.  Parameter lists are still not set up, so the driver
chokes on it shortly thereafter.
2010-06-25 12:37:21 -07:00
Eric Anholt
7f2bf62d25 glsl2: Use Mesa types instead of duping them into our program.h. 2010-06-25 12:25:19 -07:00
Eric Anholt
2a3d46dd46 glsl2: Fix dependencies. (at least partially) 2010-06-25 12:23:20 -07:00
Eric Anholt
0a1b54df7a glsl2: Replace the GLSL compiler with the glsl2 project. 2010-06-24 17:23:21 -07:00
Eric Anholt
3d6012303c glsl2: Wrap includes of C interfaces with extern "C". 2010-06-24 17:23:19 -07:00
Eric Anholt
f4869f3326 glsl2: Remove files that had been imported for standalone. 2010-06-24 17:14:00 -07:00
Eric Anholt
e82ddb781a glsl2: Stop .gitignoring the old standalone build system. 2010-06-24 15:52:56 -07:00
Eric Anholt
9aa0b6d728 glsl2: Move the Mesa IR codegen into mesa/shader/ 2010-06-24 15:49:18 -07:00
Eric Anholt
bcc13b7444 Merge branch 'glsl2-head' into glsl2
This brings in the standalone GLSL compiler that we are planning on
replacing the existing Mesa GLSL compiler.  It currently targets GLSL
1.20 and the Mesa IR.
2010-06-24 15:47:40 -07:00
Eric Anholt
e5cf3aadb8 glsl2: Add a README file for the new compiler. 2010-06-24 15:46:53 -07:00
Eric Anholt
2928588267 glsl2: Move the compiler to the subdirectory it will live in in Mesa. 2010-06-24 15:36:00 -07:00
Ian Romanick
84341f4b20 Make sure that symbols aren't multiply defined in the same scope.
The assembly parser is already checking this, but we're relying on the
symbol table handling it in glsl2.
2010-06-24 14:56:26 -07:00
Zack Rusin
b5e381d978 llvmpipe: make geometry shaders and stream output work 2010-06-22 12:58:04 -04:00
Zack Rusin
e433b73dd2 gallium: add a timestamp disjoint query
allows application to not only request the frequency of the TIME_ELAPSED
clock but also to detect if that frequency was consistent throughout the
entire bracketed range of graphics commands.
2010-06-22 12:58:04 -04:00
Zack Rusin
b6c360b46c gallium: add a new query
to figure out if gpu is finished with all of the previously issues commands
2010-06-22 12:58:04 -04:00
Roland Scheidegger
583f241716 st/mesa: remove bogus assertions st_CompressedTexSubImage2D
width/height may not be a multiple of blocksize (small mip levels / npot
textures). This should be handled just fine.
Fixes #28530.
2010-06-22 13:32:25 +01:00
Marek Olšák
eb7ef433bb r300g: optimize the immediate mode emission path a bit 2010-06-22 06:50:23 +02:00
Marek Olšák
bd52246248 r300g: do not emit ZTOP every draw call 2010-06-22 06:50:22 +02:00
Tim Evans
64e32ffb6e swrast: fix incorrect specular highlights on backfaces
See bug 28577 for details.
NOTE: this is a candidate for the 7.8 branch.

Signed-off-by: Brian Paul <brianp@vmware.com>
2010-06-21 17:19:59 -06:00
Marek Olšák
59df6725af r300g: fix crash when destroying the context on r3xx-r4xx
FDO bug #28652,
2010-06-21 23:46:38 +02:00
José Fonseca
197636814e llvmpipe: s/lpfs/shader/ 2010-06-21 14:11:15 +01:00
Marek Olšák
d82f625333 r300g: fix the KIL opcode for r3xx-r4xx (v4) 2010-06-21 04:07:11 +02:00
Marek Olšák
646e9c2fd7 r300g: fix assigning the texture cache region for 1 texture 2010-06-20 14:06:14 +02:00
Vinson Lee
7f6754af25 mapi: Add missing stdlib.h header for malloc declaration. 2010-06-20 01:03:00 -07:00
Vinson Lee
d05e848035 i965g: Fix setup of immediate types for gen4 disasm.
Caught by clang.

Follow-up to commit 070bbd4fcd.
2010-06-20 00:58:52 -07:00
Marek Olšák
e8f2adf8e3 r300g: manually assign texture cache regions
This should fix corrupted texturing on r3xx-r4xx.
2010-06-20 05:30:04 +02:00
Marek Olšák
c85e53bebf r600g: handle DRM_API_HANDLE_TYPE_KMS in buffer_get_handle 2010-06-20 03:59:32 +02:00
Marek Olšák
e4fe18a620 r300g: cleanup buffer_{from, get}_handle 2010-06-20 03:59:32 +02:00
Marek Olšák
6e96cfa39a r300g: cleanup includes 2010-06-20 03:59:31 +02:00
Marek Olšák
a916669468 r300g: texture alignment code cleanup + use special alignment for AA textures 2010-06-20 03:59:28 +02:00
Will Dyson
c674a7eb7f Revert "Fix image_matches_texture_obj() MaxLevel check"
This reverts commit a9ee956511.
It was based on a failure to understand how ther driver allocates
memory, and causes a regression with Celestia.

Set MaxLevel to dstLevel before allocating new mipmap level.

The radeon driver will fail to allocate space for a new level that
is outside of BaseLevel..MaxLevel. Set MaxLevel before allocating.

Signed-off-by: Maciej Cencora <m.cencora@gmail.com>
2010-06-19 22:09:24 +02:00
Marek Olšák
9b2ebcaf4b r300g: fix random pixels appearing / incomplete rendering
This should fix the FDO bug #28612.

Also, these piglit tests have been fixed:
- fbo-copypix
- scissor-copypixels
- copytexsubimage
- texredefine

Finally, 2 flushes in the transfer path are no longer needed.
2010-06-19 20:26:16 +02:00
Marek Olšák
4c76184305 r300g: output floats instead of halfs when passed through translate 2010-06-19 17:20:40 +02:00
Marek Olšák
ce4c9a7f25 r300g: fix clamp and mirror_clamp wrap modes when used with nearest filtering 2010-06-19 06:18:17 +02:00
Marek Olšák
6acd2117c1 r300g: more informative warning in END_CS 2010-06-19 05:15:07 +02:00
Marek Olšák
371ca689ec r300g: improve the ZTOP condition
The real difference here is that ZTOP is now enabled if all stencil ops
are set to KEEP. This improves performance.
2010-06-19 05:14:31 +02:00
Marek Olšák
8ea45a2c0e r300g: fix up the CS size of the rasterizer state 2010-06-19 05:14:18 +02:00
Eric Anholt
6dd6830e6f intel: Finalize the miptree before mapping it for fallbacks.
Fixes segfault in mipmap_view.c demo.  Bug #27212.
2010-06-18 17:44:47 -07:00
Eric Anholt
1ea7a6a44d i965: Fix the name of aa_coverage_slope in the improved AA line params. 2010-06-18 17:44:47 -07:00
Zack Rusin
0ea927b3ad graw: add two examples using new register files 2010-06-18 13:46:44 -04:00
Zack Rusin
101f792a2a gallium: add a temporary array register file
like normal temporaries, but allows to define a number of distinct
arrays, all of which make it explicit that they contain /indexable/
registers.
as a side-effect we're adding support for multi-dimensional destination
registers.
The whole thing looks like this:
DCL TEMPX[0][0..128]  # 0 array with 128 registers

ADD TEMPX[0][0], IN[0], IMM[0]
ADD TEMPX[0][1], IN[0], IMM[0]
ABS OUT[0], TEMPX[0][TEMP[0]]
2010-06-18 13:46:44 -04:00
Zack Rusin
2b221e11da gallium: add a new register file - immediate array
allows one to specify a safe (bound checked) array
filled with immediates. it works just like a const
array and declares much like our current immediates.
2010-06-18 13:46:44 -04:00
José Fonseca
d7f4250333 llvmpipe: Fix pointer dereference after free. 2010-06-18 17:37:37 +01:00
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