gallium: interface changes for multisampling
authorRoland Scheidegger <sroland@vmware.com>
Mon, 26 Apr 2010 17:50:57 +0000 (19:50 +0200)
committerRoland Scheidegger <sroland@vmware.com>
Mon, 26 Apr 2010 17:51:25 +0000 (19:51 +0200)
commitaac2cccccfd701ae8d7ce0813c28c64498d4a076
tree31cbcdddf4263d086f376798a710eb2cb4e9ad5b
parent06574e45b418dab1ec106773c92b7d9e5af45c81
gallium: interface changes for multisampling

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.
src/gallium/auxiliary/cso_cache/cso_context.c
src/gallium/auxiliary/cso_cache/cso_context.h
src/gallium/docs/source/context.rst
src/gallium/docs/source/screen.rst
src/gallium/include/pipe/p_context.h
src/gallium/include/pipe/p_defines.h
src/gallium/include/pipe/p_screen.h
src/gallium/include/pipe/p_state.h