On 26.04.2010 20:26, José Fonseca wrote:
> Hi Roland,
>
> Overall looks good. It's nice to finally have a way to export MSAA
> capabilities, and see the pipe_surfaces use being more constrained.
>
> A few comments inline, but no strong feelings so feel free to do as you
> wish.
>> diff --git a/src/gallium/auxiliary/cso_cache/cso_context.c
>> b/src/gallium/auxiliary/cso_cache/cso_context.c
>> index 6d0b420..50736f0 100644
>> --- a/src/gallium/auxiliary/cso_cache/cso_context.c
>> +++ b/src/gallium/auxiliary/cso_cache/cso_context.c
>> @@ -98,6 +98,7 @@ struct cso_context {
>> struct pipe_framebuffer_state fb, fb_saved;
>> struct pipe_viewport_state vp, vp_saved;
>> struct pipe_blend_color blend_color;
>> + unsigned sample_mask sample_mask;
>
> This doesn't look correct. sample_mask appears twice.
Of course you're right. Since things don't compile yet I didn't notice :-).
>> + void (*resource_fill_region)(struct pipe_context *pipe,
>> + struct pipe_resource *dst,
>> + struct pipe_subresource subdst,
>> + struct pipe_box *dstbox,
>> + unsigned srcx, unsigned srcy, unsigned srcz,
>> + unsigned width, unsigned height,
>> + unsigned value);
>
> I think that once you're done with this change we should remove
> surface_fill/resource_fill_region(), as no state tracker uses it -- only
> drivers internally, and the 32bit value is hopeless for formats more
> than 32bits.
I wondered about the unsigned value too. One of the non-public state
trackers seems to use it though. It is a bit odd though, maybe we really
should find a way to express that in the clear function.
>> + * Check if the given pipe_format is supported with a requested
>> + * number of samples for msaa.
>> + * \param sample_count number of samples for multisampling
>> + */
>> + boolean (*is_msaa_supported)( struct pipe_screen *,
>> + enum pipe_format format,
>> + unsigned sample_count );
>
> Instead of a new is_msaa_support() I'd prefer see sample_count in
> is_format_supported or better, replace both with is_resource_supported
> which takes a resource template. But I understand that's a bit beyond
> the scope of this change.
Yes, that's what it first looked like. I don't feel strongly either way.
For reference, d3d10 has a CheckFormatSupport() query which will return
if a format supports multisampling (for rendertarget or for sampling) -
but no indication of sample count. Sample count (along with quality
levels) can be queried with CheckMultisampleQualityLevels(). I realize
our is_format_supported() query looks quite a bit different, so maybe
the approach you suggest with giving it a template is the right thing to do.
Roland
------------------------------------------------------------------------------
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev