Age | Commit message (Collapse) | Author |
|
|
|
Silences this GCC warning.
nvfx_vertprog.c: In function 'nvfx_vertprog_translate':
nvfx_vertprog.c:998: warning: assignment discards qualifiers from pointer target type
|
|
|
|
Changes in v3:
- Also change trace, which I forgot about
Changes in v2:
- No longer adds tessellation shaders
Currently each shader cap has FS and VS versions.
However, we want a version of them for geometry, tessellation control,
and tessellation evaluation shaders, and want to be able to easily
query a given cap type for a given shader stage.
Since having 5 duplicates of each shader cap is unmanageable, add
a new get_shader_param function that takes both a shader cap from a
new enum and a shader stage.
Drivers with non-unified shaders will first switch on the shader
and, within each case, switch on the cap.
Drivers with unified shaders instead first check whether the shader
is supported, and then switch on the cap.
MAX_CONST_BUFFERS is now per-stage.
The geometry shader cap is removed in favor of checking whether the
limit of geometry shader instructions is greater than 0, which is also
used for tessellation shaders.
WARNING: all drivers changed and compiled but only nvfx tested
|
|
|
|
Fixes SCons build.
|
|
|
|
|
|
|
|
|
|
This is the new register generation toolkit in use by nouveau.
As far as I know, this is the best register description toolkit in
existence, and you should use it too for your hardware :)
Thanks to Marcin Kościelnicki for inventing it and performing
invaluable reverse engineering work of nVidia chips.
|
|
|
|
Thanks for Dave Airlie and Jerome Glisse for their code which made
me realize I need this too.
|
|
Hardware sets it to 0, so we add an ADD to put an 1 there if the
application really wants the alpha channel.
|
|
Completely untested, since Mesa apparently never uses this currently.
In particular, it might not work with scalar slot op.
|
|
The old swtnl code was broken by the new shader linkage support for
GLSL.
This is a rewrite of swtnl support, which should instead work properly,
be faster and more closer to the much more tested hardware pipeline.
|
|
|
|
|
|
We might want to copy them as color ones though.
Also works around crash in Unigine Heaven due to failing to allocate
a 64 MB temporary in GART for a CPU copy.
Unigine Heaven now works on nv40, albeit with very heavy glitches (with
the floating branch with render_hdr 0).
|
|
|
|
|
|
|
|
Actually, we may want to get rid of the x/y coordinates for linear
surfaces, and realign the origin from scratch if necessary, instead
of doing this "on-demand realignment".
|
|
|
|
|
|
|
|
We probably want to reorganize the remaining files too, but that's
for later, maybe.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
We were incorrectly setting a register that limited the range of
constants accessible via indirect addressing.
Setting it correctly, we can address all the constants the GPU
supports.
|
|
Does any API even use rounding-up?
|
|
|
|
|
|
|
|
Fixes piglit lodbias
|
|
|
|
Negative or huge offsets not yet supported.
|
|
|
|
Signed-off-by: Patrice Mandin <patmandin@gmail.com>
|
|
This is a follow up to commit 89b2897220acfacdc431f138377fbcec9f0ea812.
|
|
Guard against potential use after free.
|
|
Update all drivers to use draw_set_index_buffer,
draw_set_mapped_index_buffer, and draw_vbo. Remove
draw_set_mapped_element_buffer and draw_set_mapped_element_buffer_range.
|
|
Remove nvfx_context.h.
Include p_compiler.h for INLINE symbol.
Fixes nvfx_context.h -> nvfx_screen.h -> nvfx_context.h include recursion.
|
|
Include stdint.h for uint8_t symbol.
Include p_compiler.h for INLINE symbol.
|