[Mesa-dev] [PATCH 5/5] gallium/targets: Move api init into st code
Alexander von Gluck IV
kallisti5 at unixzen.com
Fri May 15 07:39:03 PDT 2015
can-do. I actually think I spotted one more extern "C" reduction I can
do.
Thanks!
-- Alex
On , Brian Paul wrote:
> Let's play it safe. Update your patch series and re-post it to the
> list for a final review, please.
>
> -Brian
>
> On 05/14/2015 06:01 PM, Alexander von Gluck IV wrote:
>>
>> 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