[Mesa-stable] [PATCH] st/mesa: add osmesa framebuffer iface hash table per st manager

Cherniak, Bruce bruce.cherniak at intel.com
Thu Aug 3 15:36:22 UTC 2017


> 
> On Aug 2, 2017, at 10:30 PM, Brian Paul <brianp at vmware.com> wrote:
> 
> I'll let Charmaine review, but the subject line prefix should probably be "st/osmesa".

Thanks, I'll clarify the subject line on commit.

> -Brian
> 
> On 08/02/2017 05:28 PM, Bruce Cherniak wrote:
>> Commit bbc29393d3 didn't include osmesa state_tracker.  This patch adds
>> necessary initialization.
>> 
>> Fixes crash in OSMesa initialization.
>> 
>> Created-by: Charmaine Lee <charmainel at vmware.com>
>> Tested-by: Bruce Cherniak <bruce.cherniak at intel.com>
>> 
>> Cc: Charmaine Lee <charmainel at vmware.com>
>> Cc: 17.2 <mesa-stable at lists.freedesktop.org>
>> ---
>>  src/gallium/state_trackers/osmesa/osmesa.c | 11 +++++++++++
>>  1 file changed, 11 insertions(+)
>> 
>> diff --git a/src/gallium/state_trackers/osmesa/osmesa.c b/src/gallium/state_trackers/osmesa/osmesa.c
>> index 18f1b88128..751d255c54 100644
>> --- a/src/gallium/state_trackers/osmesa/osmesa.c
>> +++ b/src/gallium/state_trackers/osmesa/osmesa.c
>> @@ -439,6 +439,7 @@ osmesa_st_framebuffer_validate(struct st_context_iface *stctx,
>>     return TRUE;
>>  }
>> 
>> +static uint32_t osmesa_fb_ID = 0;
>> 
>>  static struct st_framebuffer_iface *
>>  osmesa_create_st_framebuffer(void)
>> @@ -448,6 +449,8 @@ osmesa_create_st_framebuffer(void)
>>        stfbi->flush_front = osmesa_st_framebuffer_flush_front;
>>        stfbi->validate = osmesa_st_framebuffer_validate;
>>        p_atomic_set(&stfbi->stamp, 1);
>> +      stfbi->ID = p_atomic_inc_return(&osmesa_fb_ID);
>> +      stfbi->state_manager = get_st_manager();
>>     }
>>     return stfbi;
>>  }
>> @@ -508,6 +511,14 @@ osmesa_find_buffer(enum pipe_format color_format,
>>  static void
>>  osmesa_destroy_buffer(struct osmesa_buffer *osbuffer)
>>  {
>> +   struct st_api *stapi = get_st_api();
>> +
>> +   /*
>> +    * Notify the state manager that the associated framebuffer interface
>> +    * is no longer valid.
>> +    */
>> +   stapi->destroy_drawable(stapi, osbuffer->stfb);
>> +
>>     FREE(osbuffer->stfb);
>>     FREE(osbuffer);
>>  }
>> 
> 



More information about the mesa-stable mailing list