summaryrefslogtreecommitdiffstats
path: root/src/gallium/include
Commit message (Collapse)AuthorAgeFilesLines
* gallium/softpipe/draw: support samplers in geometry shadersZack Rusin2010-06-112-0/+8
|
* geometry shaders: make gs work with changable primitives and variable number ↵Zack Rusin2010-06-091-1/+1
| | | | | | | | 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.
* gallium: add basic support for stream output queriesZack Rusin2010-06-081-1/+10
|
* gallium: adjust the query interface to support custom typesZack Rusin2010-06-081-2/+2
| | | | we need to change it to support composite types
* gallium: rename draw_auto to draw_stream_output, plus fix a commentZack Rusin2010-06-082-2/+1
| | | | Brian spotted those
* gallium: make draw auto work and add relevant caps and docsZack Rusin2010-06-081-0/+1
|
* gallium: add interface for DrawAuto and implement it in softpipeZack Rusin2010-06-081-0/+5
|
* gallium: a lot more complete implementation of stream outputZack Rusin2010-06-081-1/+11
| | | | | | | 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)
* gallium: basic and initial implementation of the stream output interfaceZack Rusin2010-06-083-0/+21
| | | | aka transform feedback
* graw: add parse_geometry_shader helperKeith Whitwell2010-06-071-0/+3
|
* include/st: new file swrast_screen_create.hKeith Whitwell2010-06-071-0/+67
|
* mesa/st: add support for EXT_texture_swizzle.Dave Airlie2010-06-051-0/+1
| | | | | | | | | | | 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 <[email protected]>
* Merge branch 'gallium-newclear'Roland Scheidegger2010-06-032-15/+30
|\ | | | | | | | | Conflicts: src/gallium/state_trackers/python/p_context.i
| * gallium: rename clearRT / clearDS to clear_render_target / clear_depth_stencilRoland Scheidegger2010-06-031-12/+12
| | | | | | | | | | more consistent with rest of gallium naming conventions. Also rename driver-internal names for these the same.
| * gallium: clear interface changesRoland Scheidegger2010-05-282-15/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Define PUBLIC to dllexport on MSVC.Chia-I Wu2010-05-311-0/+2
|/ | | | Define PUBLIC to __declspec(dllexport) when _MVC_VER is defined.
* drm_api: Remove type argument from create screen callbackJakob Bornecrantz2010-05-251-18/+1
| | | | | With the removal of DRI1 support there where no use of this argument, some drivers didn't even properly check it.
* gallium: Remove dri1_api.h and winsys support for DRI1Jakob Bornecrantz2010-05-251-81/+0
| | | | | Since DRI1 support was dropped from st/dri it makes no sense to keep this code around.
* st_api: Give get_egl_image arguments directly to the functionJakob Borncrantz2010-05-211-5/+13
|
* gallium: Fix invalidate framebuffer with old libGL librariesJakob Bornecrantz2010-05-211-1/+8
|
* st_api: Add get param function to st_managerJakob Bornecrantz2010-05-211-0/+13
|
* Merge branch 'gallium-msaa'Roland Scheidegger2010-05-214-21/+40
|\ | | | | | | | | | | Conflicts: src/mesa/state_tracker/st_gen_mipmap.c src/mesa/state_tracker/st_texture.c
| * gallium: clean up resource_copy_region functionRoland Scheidegger2010-05-171-2/+0
| | | | | | | | | | | | | | | | | | | | 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.
| * gallium: another interface change for multisamplingRoland Scheidegger2010-05-171-10/+2
| | | | | | | | | | | | | | | | | | | | 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.
| * Merge commit 'origin/master' into gallium-msaaRoland Scheidegger2010-05-041-3/+2
| |\
| * \ Merge commit 'origin/master' into gallium-msaaRoland Scheidegger2010-04-302-5/+3
| |\ \
| * | | gallium: fix glaring bugs in last commitRoland Scheidegger2010-04-271-2/+1
| | | |
| * | | gallium: interface changes for multisamplingRoland Scheidegger2010-04-264-18/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | add function to set sample mask, and state for alpha-to-coverage and alpha-to-one. Also make it possible to query for supported sample count with is_msaa_supported(). Use explicit resource_resolve() to resolve a resource. Note that it is illegal to bind a unresolved resource as a sampler view, must be resolved first (as per d3d10 and OGL APIs, binding unresolved resource would mean that special texture fetch functions need to be used which give explicit control over what samples to fetch, which isn't supported yet). Also change surface_fill() and surface_copy() to operate directly on resources. Blits should operate directly on resources, most often state trackers just used get_tex_surface() then did a blit. Note this also means the blit bind flags are gone, if a driver implements this functionality it is expected to handle it for all resources having depth_stencil/render_target/sampler_view bind flags (might even require it for all bind flags?). Might want to introduce quality levels for MSAA later. Might need to revisit this for hw which does instant resolve.
* | | | Merge branch 'gallium-front-ccw'Keith Whitwell2010-05-212-11/+12
|\ \ \ \
| * | | | gallium: convert rasterizer state to use gl-style front/back conceptsKeith Whitwell2010-05-142-11/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | Merge commit 'origin/graw-tests'Keith Whitwell2010-05-191-8/+15
|\ \ \ \ \
| * | | | | graw: combine graw_init and graw_create_window functionsKeith Whitwell2010-05-141-8/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Different environments seem to want to create these in different orders. Abstract over this by combining the calls.
| * | | | | graw: move towards glut-like interface, add tri.cKeith Whitwell2010-05-141-0/+9
| |/ / / /
* | | | | gallium: EXT_timer_query support.Mathias Fröhlich2010-05-171-1/+3
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Corbin Simpson <[email protected]>
* | | | | gallium: remove forward declarations of non-existent objectsMarek Olšák2010-05-143-3/+0
|/ / / /
* | | | gallium: Add tokens for Cygwin.Vinson Lee2010-05-131-0/+5
| | | |
* | | | graw: Make functions publicJakob Bornecrantz2010-05-121-7/+7
| | | |
* | | | gallium: Add new fine grained PIPE_CAP_xx for shader limits.José Fonseca2010-05-121-0/+24
| | | | | | | | | | | | | | | | | | | | PIPE_CAP_GLSL and PIPE_CAP_SM3 not removed yet, as opcode support is not yet covered.
* | | | gallium: Make PIPE_CAP_xxx enums.José Fonseca2010-05-122-42/+47
| | | |
* | | | gallium: remove trailing comma in enum listBrian Paul2010-05-041-2/+2
| |_|/ |/| |
* | | gallium: Remove loop register file.José Fonseca2010-05-031-3/+2
| |/ |/| | | | | | | It was only used for D3D's REP/END/BGNFOR/ENDFOR. D3D's aL register is just like another address register now.
* | gallium: remove trailing commaBrian Paul2010-04-281-1/+1
| |
* | gallium: Drop BGNFOR, ENDFOR, REP, and ENDREP opcodes.José Fonseca2010-04-271-4/+2
|/ | | | | Arcane DX9 opcodes that never were emitted by Mesa and have no DX10 counterpart. Slated for removal for quite some time now.
* st_api: Remove st_moduleJakob Bornecrantz2010-04-261-23/+12
| | | | | | The struct st_module isn't needed as it is the same thing as the st_api struct. That is they both represent the API. Instead just use a single function entry point to the the API.
* gallium: use better param nameBrian Paul2010-04-221-2/+2
|
* gallium: fix comment language, remove dangling commentBrian Paul2010-04-221-4/+4
|
* gallium: replace pipe_resource::_usage with pipe_resource::usageBrian Paul2010-04-201-1/+1
|
* Merge branch 'gallium-index-bias'José Fonseca2010-04-201-0/+3
|\
| * gallium: Add index bias parameter to draw_elements and friends.José Fonseca2010-04-191-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | indexBias corresponds to: - BaseVertexIndex parameter of D3D9's IDirect3DDevice9::DrawIndexedPrimitive method - BaseVertexLocation parameter of ID3D10Device::DrawIndexed Although a positive indexBias can be easily be implemented in Gallium by adding indexBias*stride to each vertex buffer base offset, a negative indexBias cannot, as the final vertex buffer offset could be negative. I'm not aware of this functionality being exposed to GL drivers, so for now all hardware drivers will just assert(indexBias == 0). See also: - http://msdn.microsoft.com/en-us/library/bb174369.aspx (D3D9) - http://msdn.microsoft.com/en-us/library/ff556126.aspx (D3D10 DDI)
* | p_compiler: add likely/unlikely macrosLuca Barbieri2010-04-181-1/+39
|/ | | | | | Defined like the Linux kernel. A explanatory comment is included.