summaryrefslogtreecommitdiff
path: root/src/gallium/include/pipe
AgeCommit message (Collapse)Author
2010-10-21gallium: new CAP, state for primitive restartBrian Paul
2010-10-13gallium/format: add X32_S8X24_USCALED format.Dave Airlie
Has similiar use cases to the S8X24 and X24S8 formats.
2010-10-13gallium/format: add support for X24S8 and S8X24 formats.Dave Airlie
these formats are needed for hw that can sample and write stencil values. Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-10-13gallium/tgsi: add support for stencil writes.Dave Airlie
this adds the capability + a stencil semantic id, + tgsi scan support. Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-10-11gallium: Define C99 restrict keyword where absent.José Fonseca
2010-09-14gallium: introduce get_shader_param (ALL DRIVERS CHANGED) (v3)Luca Barbieri
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
2010-09-07Replace reference to tgsi-instruction-set.txt.Tilman Sauerbeck
That file has been replaced by tgsi.rst. Signed-off-by: José Fonseca <jfonseca@vmware.com>
2010-08-28gallium: Remove unnecessary header from p_state.h.Vinson Lee
Remove p_screen.h.
2010-08-27gallium: Remove unnecessary header from p_shader_tokens.h.Vinson Lee
Remove p_compiler.h.
2010-08-27gallium: Remove unnecessary header from p_format.h.Vinson Lee
Remove p_compiler.h.
2010-08-26gallium: Clean up header file inclusion in p_defines.h.Vinson Lee
Remove p_format.h. Include p_compiler.h for boolean and uint64_t symbols.
2010-08-26gallium: Clean up header file inclusion in p_context.h.Vinson Lee
Remove p_state.h. Include p_compiler.h for boolean symbol. Add needed forward declarations after removing p_state.h.
2010-08-21p_compiler: add replacement va_copyLuca Barbieri
This might technically not always be correct, because va_copy might be a function, or a system might not have va_copy, and not work with assignment. Hopefully this is never the case. Without configure tests, it doesn't seem possible to do better.
2010-08-20gallium: add PIPE_TEXTURE_RECT targetLuca Barbieri
This allows to properly support OpenGL rectangle textures in a well defined way, especially on drivers that don't expose PIPE_CAP_NPOT_TEXTURES.
2010-08-11gallium: add ALWAYS_INLINELuca Barbieri
Used when we want to be sure the compiler inlines a large function into an inner loop.
2010-07-29gallium: Keep only pipe_context::draw_vbo.Chia-I Wu
That is, remove pipe_context::draw_arrays, pipe_context::draw_elements, pipe_context::draw_arrays_instanced, pipe_context::draw_elements_instanced, pipe_context::draw_range_elements.
2010-07-29gallium: Add pipe_context::draw_vbo and pipe_context::set_index_buffer.Chia-I Wu
This commit adds a new unified draw_vbo method to pipe_context. Unlike other draw methods, draw_vbo treats the index buffer as a state which is set with set_index_buffer.
2010-07-21gallium: add depth clamp to the interfaceMarek Olšák
2010-07-21gallium: remove pointless bitfield restrction in pipe_vertex_elementKeith Whitwell
This used to be a somewhat packed struct, but no longer. Remove the last remaining bitfield tag.
2010-07-14gallium: Ensure prototypes are wrapped in extern "C".José Fonseca
Fixes MSVC build failure due to inconsistent _ReadWriteBarrier prototype.
2010-07-14gallium: Add a macro for memory barriers.José Fonseca
2010-07-14gallium: Add a new PIPE_ARCH_SSSE3 define for SSSE3 compiler support.José Fonseca
2010-07-08gallium: bump PIPE_MAX_SHADER_INPUTS/OUTPUTS to 32Brian Paul
2010-06-28mesa: initial support for ARB_geometry_shader4Zack Rusin
laying down the foundation for everything and implementing most of the stuff. linking, gl_VerticesIn and multidimensional inputs are left.
2010-06-24pipe: Add PIPE_OS_HURDnobled
One tiny step toward porting Gallium to the GNU/Hurd kernel (and fixing Debian bug #585618). Signed-off-by: Corbin Simpson <MostAwesomeDude@gmail.com>
2010-06-22gallium: add a timestamp disjoint queryZack Rusin
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-22gallium: add a new queryZack Rusin
to figure out if gpu is finished with all of the previously issues commands
2010-06-18gallium: add a temporary array register fileZack Rusin
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-18gallium: add a new register file - immediate arrayZack Rusin
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-11gallium/softpipe/draw: support samplers in geometry shadersZack Rusin
2010-06-09geometry shaders: make gs work with changable primitives and variable number ↵Zack Rusin
of vertices lots and lots of fixes for geometry shaders. in particular now we work when the gs emits a different primitive than the one the pipeline was started with and also we work when gs emits more vertices than would fit in the original buffer.
2010-06-08gallium: add basic support for stream output queriesZack Rusin
2010-06-08gallium: adjust the query interface to support custom typesZack Rusin
we need to change it to support composite types
2010-06-08gallium: rename draw_auto to draw_stream_output, plus fix a commentZack Rusin
Brian spotted those
2010-06-08gallium: make draw auto work and add relevant caps and docsZack Rusin
2010-06-08gallium: add interface for DrawAuto and implement it in softpipeZack Rusin
2010-06-08gallium: a lot more complete implementation of stream outputZack Rusin
interface wise we have everything needed by d3d10 and gl transform feedback. the draw module misses implementation of some corner cases (e.g. when stream output wants different number of components per output than normal rendering paths)
2010-06-08gallium: basic and initial implementation of the stream output interfaceZack Rusin
aka transform feedback
2010-06-05mesa/st: add support for EXT_texture_swizzle.Dave Airlie
This passes on r300g, the only bit I'm not really sure about is the handling of the sampler_view in st_atom_texture.c, I unreference it there if the swizzle value changes and I also have to create a new set of functions to create a new one since the u_sampler.c ones don't handle swizzle so much. adds r300g + softpipe enables, I think other drivers could pass easily enough. Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-06-03Merge branch 'gallium-newclear'Roland Scheidegger
Conflicts: src/gallium/state_trackers/python/p_context.i
2010-06-03gallium: rename clearRT / clearDS to clear_render_target / clear_depth_stencilRoland Scheidegger
more consistent with rest of gallium naming conventions. Also rename driver-internal names for these the same.
2010-05-31Define PUBLIC to dllexport on MSVC.Chia-I Wu
Define PUBLIC to __declspec(dllexport) when _MVC_VER is defined.
2010-05-28gallium: clear interface changesRoland Scheidegger
clears were a bit limited in gallium: - no scissoring (OGL only) nor explicit rectangle list (d3d9) - no color/stencil masks (OGL only) - no separate depth/stencil clears (d3d9/d3d10/OGL) - cannot really clear single color buffer (only with resource_fill_region) Additionally, d3d can clear surfaces not currently bound to the framebuffer. It is, however, not easy to find some common ground what a clear should be able to do, due to both API requirements and also hw differences (a case which might be able to use a special clear path on one hw might need a "normal" quad render on another). Hence several clear methods are provided, and a driver should implement all of them. - clear: slightly modified to also be able to clear only depth or stencil in a combined depth/stencil surface. This is however optional based on driver capability though ideally it wouldn't be optional. AFAIK this is in fact something used by applications quite a bit. Otherwise, for now still doesn't allow clearing with scissors/mask (or single color buffers) - clearRT: clears a single (potentially unbound) color surface. This was formerly roughly known as resource_fill_region. mesa st will not currently use this, though potentially would be useful for GL ClearBuffer. - clearDS: similar to above except for depth stencil surfaces. Note that clearDS/clearRT currently handle can handle partial clear. This might change however.
2010-05-21Merge branch 'gallium-msaa'Roland Scheidegger
Conflicts: src/mesa/state_tracker/st_gen_mipmap.c src/mesa/state_tracker/st_texture.c
2010-05-21Merge branch 'gallium-front-ccw'Keith Whitwell
2010-05-17gallium: clean up resource_copy_region functionRoland Scheidegger
Previously, surface_copy was said to allow overlapping blits, and it was "optional". However, some state trackers actually assumed it is always present, and quite some code (like in u_blit) assumed overlapping isn't allowed. Hence, resource_copy_region (and in the same spirit, resource_fill_region) is now mandatory, but overlapping blits are no longer allowed. A driver can plug in the cpu fallback util_resource_copy_region if it does not want to provide its own implementation, though this is not optimal.
2010-05-17gallium: another interface change for multisamplingRoland Scheidegger
due to popular request, use nr_samples parameter in is_format_supported() instead of new is_msaa_supported() query. This makes it easily possible to query if a format with a given sample count is also supported not only as render target, but for sampler views (note that texture sampling from multisampled resources isn't supported yet). It is not quite how dx10 format msaa queries work, but we might need to revisit format queries completely in the future anyway.
2010-05-14gallium: convert rasterizer state to use gl-style front/back conceptsKeith Whitwell
Use front/back instead of cw/ccw throughout. Also, use offset_point/line/fill instead of offset_cw/ccw. Brings gallium representation of this state into line with its main user, and also what turns out to be the most common hardware representation. This fixes a long-standing bias in the interface towards the architecture of the software rasterizer.
2010-05-13gallium: Add tokens for Cygwin.Vinson Lee
2010-05-12gallium: Add new fine grained PIPE_CAP_xx for shader limits.José Fonseca
PIPE_CAP_GLSL and PIPE_CAP_SM3 not removed yet, as opcode support is not yet covered.