On 07/04/2012 10:52 AM, Eric Anholt wrote:
> This means that GLX buffer sharing of these no longer works.  On the
> other hand, just *look* at this code reduction.

I enjoy seeing all this code die ;) I wish we had decided earlier to break GLX
sharing before the ugly handshake code was written.



> @@ -994,8 +902,7 @@ intel_query_dri2_buffers_no_separate_stencil(struct 
> intel_context *intel,
>  /**
>   * \brief Assign a DRI buffer's DRM region to a renderbuffer.
>   *
> - * This is called from intel_update_renderbuffers().  It is used only if
> - * either the hardware or the X driver lacks separate stencil support.
> + * This is called from intel_update_renderbuffers().
>   *
>   * \par Note:
>   *    DRI buffers whose attachment point is DRI2BufferStencil or

The "\par Note" above needs to be updated too.


> @@ -1008,14 +915,12 @@ intel_query_dri2_buffers_no_separate_stencil(struct 
> intel_context *intel,
>   * \see intel_region_alloc_for_handle()
>   */
>  static void
> -intel_process_dri2_buffer_no_separate_stencil(struct intel_context *intel,
> -                                           __DRIdrawable *drawable,
> -                                           __DRIbuffer *buffer,
> -                                           struct intel_renderbuffer *rb,
> -                                           const char *buffer_name)
> +intel_process_dri2_buffer(struct intel_context *intel,
> +                       __DRIdrawable *drawable,
> +                       __DRIbuffer *buffer,
> +                       struct intel_renderbuffer *rb,
> +                       const char *buffer_name)
>  {
> -   assert(!intel->must_use_separate_stencil);
> -
>     struct gl_framebuffer *fb = drawable->driverPrivate;
>     struct intel_renderbuffer *depth_rb = NULL;

Even after this patch, intel_process_dri2_buffer() contains a lot of
depth/stencil code. It looks dead to me and I think it should all be removed.



> @@ -557,16 +558,10 @@ intelCreateBuffer(__DRIscreen * driScrnPriv,
>        if (mesaVis->depthBits == 24) {
>        assert(mesaVis->stencilBits == 8);
>  
> -      if (screen->hw_has_separate_stencil
> -          && screen->dri2_has_hiz != INTEL_DRI2_HAS_HIZ_FALSE) {
> -         /*
> -          * Request a separate stencil buffer even if we do not yet know if
> -          * the screen supports it. (See comments for
> -          * enum intel_dri2_has_hiz).
> -          */
> -         rb = intel_create_renderbuffer(MESA_FORMAT_X8_Z24);
> +      if (screen->hw_has_separate_stencil) {
> +         rb = intel_create_private_renderbuffer(MESA_FORMAT_X8_Z24);
>           _mesa_add_renderbuffer(fb, BUFFER_DEPTH, &rb->Base.Base);
> -         rb = intel_create_renderbuffer(MESA_FORMAT_S8);
> +         rb = intel_create_private_renderbuffer(MESA_FORMAT_S8);
>           _mesa_add_renderbuffer(fb, BUFFER_STENCIL, &rb->Base.Base);
>        } else {
>           /*

Have you tested this on pre-gen6? I expect the else branch to be broken there,
because it's not converted to use intel_create_private_renderbuffer().
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to