[Mesa-dev] [PATCH 5/5] gallium/targets: Move api init into st code

Alexander von Gluck IV kallisti5 at unixzen.com
Thu May 14 17:01:35 PDT 2015


Good evening Brian,

Thanks, these were fixed.

I just realized that I can drop os_thread.h from our C++ code as we no 
longer depend on it and not do the extern "C" there. (tested working)

You ok with this changeset with the change above?
(I'd hate to commit it, then undo it)

Thanks!

  -- Alex



On , Brian Paul wrote:
> In the past, you used the prefix "target/haiku-softpipe:" on changes
> to this code.  I'd suggest using that again here.
> 
> With these changes,
> Reviewed-by: Brian Paul <brianp at vmware.com>
> 
> On 05/14/2015 04:39 PM, Alexander von Gluck IV wrote:
>> We also reduce the amount of need-to-know information about st_api
>> to require one less extern "C" in st_manager.h
>> ---
>>   .../targets/haiku-softpipe/GalliumContext.cpp      |   23 
>> +++++++------------
>>   .../targets/haiku-softpipe/GalliumContext.h        |    5 +---
>>   2 files changed, 10 insertions(+), 18 deletions(-)
>> 
>> diff --git a/src/gallium/targets/haiku-softpipe/GalliumContext.cpp 
>> b/src/gallium/targets/haiku-softpipe/GalliumContext.cpp
>> index b24aef7..1e3874b 100644
>> --- a/src/gallium/targets/haiku-softpipe/GalliumContext.cpp
>> +++ b/src/gallium/targets/haiku-softpipe/GalliumContext.cpp
>> @@ -15,14 +15,13 @@
>>   #include "GLView.h"
>> 
>>   #include "bitmap_wrapper.h"
>> -extern "C" {
>> +
>>   #include "glapi/glapi.h"
>>   #include "pipe/p_format.h"
>> -#include "state_tracker/st_cb_fbo.h"
>> -#include "state_tracker/st_cb_flush.h"
>> +//#include "state_tracker/st_cb_fbo.h"
>> +//#include "state_tracker/st_cb_flush.h"
>>   #include "state_tracker/st_context.h"
>>   #include "state_tracker/st_gl_api.h"
>> -#include "state_tracker/st_manager.h"
>>   #include "state_tracker/sw_winsys.h"
>>   #include "sw/hgl/hgl_sw_winsys.h"
>>   #include "util/u_atomic.h"
>> @@ -30,7 +29,6 @@ extern "C" {
>> 
>>   #include "target-helpers/inline_sw_helper.h"
>>   #include "target-helpers/inline_debug_helper.h"
>> -}
>> 
>> 
>>   #ifdef DEBUG
>> @@ -127,7 +125,8 @@ GalliumContext::CreateContext(Bitmap *bitmap)
>>   	context->read = NULL;
>>   	context->st = NULL;
>> 
>> -	context->api = st_gl_api_create();
>> +	// Create st_gl_api
>> +	context->api = hgl_create_st_api();
>>   	if (!context->api) {
>>   		ERROR("%s: Couldn't obtain Mesa state tracker API!\n", __func__);
>>   		return -1;
>> @@ -159,12 +158,10 @@ GalliumContext::CreateContext(Bitmap *bitmap)
>>   	attribs.minor = 0;
>>   	//attribs.flags |= ST_CONTEXT_FLAG_DEBUG;
>> 
>> -	struct st_api* api = context->api;
>> -
>>   	// Create context using state tracker api call
>>   	enum st_context_error result;
>> -	context->st = api->create_context(api, context->manager, &attribs,
>> -		&result, context->st);
>> +	context->st = context->api->create_context(context->api, 
>> context->manager,
>> +		&attribs, &result, context->st);
>> 
>>   	if (!context->st) {
>>   		ERROR("%s: Couldn't create mesa state tracker context!\n",
>> @@ -289,10 +286,8 @@ GalliumContext::SetCurrentContext(Bitmap *bitmap, 
>> context_id contextID)
>>   		return B_ERROR;
>>   	}
>> 
>> -	struct st_api* api = context->api;
>> -
>>   	if (!bitmap) {
>> -		api->make_current(context->api, NULL, NULL, NULL);
>> +		context->api->make_current(context->api, NULL, NULL, NULL);
>>   		return B_OK;
>>   	}
>> 
>> @@ -305,7 +300,7 @@ GalliumContext::SetCurrentContext(Bitmap *bitmap, 
>> context_id contextID)
>>   	}
>> 
>>   	// We need to lock and unlock framebuffers before accessing them
>> -	api->make_current(context->api, context->st, context->draw->stfbi,
>> +	context->api->make_current(context->api, context->st, 
>> context->draw->stfbi,
>>   		context->read->stfbi);
>> 
>>   	//if (context->textures[ST_ATTACHMENT_BACK_LEFT]
>> diff --git a/src/gallium/targets/haiku-softpipe/GalliumContext.h 
>> b/src/gallium/targets/haiku-softpipe/GalliumContext.h
>> index b50d528..a13c4ce 100644
>> --- a/src/gallium/targets/haiku-softpipe/GalliumContext.h
>> +++ b/src/gallium/targets/haiku-softpipe/GalliumContext.h
>> @@ -12,14 +12,11 @@
>>   #include <stddef.h>
>>   #include <kernel/image.h>
>> 
>> -extern "C" {
>> -//#include "state_tracker/st_api.h"
>>   #include "pipe/p_compiler.h"
>>   #include "pipe/p_screen.h"
>>   #include "postprocess/filters.h"
>>   #include "os/os_thread.h"
>>   #include "hgl_context.h"
>> -}
>> 
>>   #include "bitmap_wrapper.h"
>> 
>> @@ -56,6 +53,6 @@ private:
>>   		context_id			fCurrentContext;
>>   		pipe_mutex			fMutex;
>>   };
>> -
>> +
>> 
>>   #endif /* GALLIUMCONTEXT_H */
>> 



More information about the mesa-dev mailing list