kopper, dri: remove trace_screen_unwrap
pipe_screen::get_driver_pipe_screen can be used to achieve the same thing. Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30587>
This commit is contained in:

committed by
Marge Bot

parent
b7b10b971a
commit
316bf3bd8a
@@ -1657,12 +1657,3 @@ trace_screen(struct pipe_screen *screen)
|
||||
assert(screen->destroy == trace_screen_destroy);
|
||||
return (struct trace_screen *)screen;
|
||||
}
|
||||
|
||||
struct pipe_screen *
|
||||
trace_screen_unwrap(struct pipe_screen *_screen)
|
||||
{
|
||||
if (_screen->destroy != trace_screen_destroy)
|
||||
return _screen;
|
||||
struct trace_screen *tr_scr = trace_screen(_screen);
|
||||
return tr_scr->screen;
|
||||
}
|
||||
|
@@ -65,9 +65,6 @@ struct trace_screen
|
||||
struct trace_screen *
|
||||
trace_screen(struct pipe_screen *screen);
|
||||
|
||||
struct pipe_screen *
|
||||
trace_screen_unwrap(struct pipe_screen *_screen);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -23,7 +23,6 @@
|
||||
*/
|
||||
|
||||
#include "util/detect_os.h"
|
||||
#include "driver_trace/tr_screen.h"
|
||||
|
||||
#include "zink_context.h"
|
||||
#include "zink_screen.h"
|
||||
@@ -656,7 +655,8 @@ zink_kopper_acquire(struct zink_context *ctx, struct zink_resource *res, uint64_
|
||||
const struct kopper_swapchain *cswap = cdt->swapchain;
|
||||
res->obj->new_dt |= res->base.b.width0 != cswap->scci.imageExtent.width ||
|
||||
res->base.b.height0 != cswap->scci.imageExtent.height;
|
||||
VkResult ret = kopper_acquire(zink_screen(trace_screen_unwrap(ctx->base.screen)), res, timeout);
|
||||
struct zink_screen *zscreen = zink_screen(kopper_get_zink_screen(ctx->base.screen));
|
||||
VkResult ret = kopper_acquire(zscreen, res, timeout);
|
||||
if (ret == VK_SUCCESS || ret == VK_SUBOPTIMAL_KHR) {
|
||||
if (cswap != cdt->swapchain) {
|
||||
ctx->swapchain_size = cdt->swapchain->scci.imageExtent;
|
||||
|
@@ -134,6 +134,13 @@ zink_kopper_acquired(const struct kopper_displaytarget *cdt, uint32_t idx)
|
||||
return idx != UINT32_MAX && cdt->swapchain->images[idx].acquired;
|
||||
}
|
||||
|
||||
static inline struct pipe_screen * kopper_get_zink_screen(struct pipe_screen *screen)
|
||||
{
|
||||
struct pipe_screen *pscreen = screen->get_driver_pipe_screen ?
|
||||
screen->get_driver_pipe_screen(screen) : screen;
|
||||
return pscreen;
|
||||
}
|
||||
|
||||
void
|
||||
zink_kopper_update_last_written(struct zink_resource *res);
|
||||
|
||||
|
@@ -642,7 +642,6 @@ dri_init_screen(struct dri_screen *screen,
|
||||
&screen->max_gl_es1_version,
|
||||
&screen->max_gl_es2_version);
|
||||
|
||||
screen->unwrapped_screen = trace_screen_unwrap(pscreen);
|
||||
screen->throttle = pscreen->get_param(pscreen, PIPE_CAP_THROTTLE);
|
||||
if (pscreen->get_param(pscreen, PIPE_CAP_DEVICE_PROTECTED_CONTEXT))
|
||||
screen->has_protected_context = true;
|
||||
|
@@ -127,7 +127,6 @@ struct dri_screen
|
||||
opencl_dri_event_get_fence_t opencl_dri_event_get_fence;
|
||||
|
||||
/* kopper */
|
||||
struct pipe_screen *unwrapped_screen;
|
||||
bool has_dmabuf;
|
||||
bool is_sw;
|
||||
};
|
||||
|
@@ -363,14 +363,13 @@ kopper_update_drawable_info(struct dri_drawable *drawable)
|
||||
struct dri_screen *screen = drawable->screen;
|
||||
bool is_window = drawable->info.bos.sType != 0;
|
||||
int x, y;
|
||||
struct pipe_screen *pscreen = screen->unwrapped_screen;
|
||||
struct pipe_resource *ptex = drawable->textures[ST_ATTACHMENT_BACK_LEFT] ?
|
||||
drawable->textures[ST_ATTACHMENT_BACK_LEFT] :
|
||||
drawable->textures[ST_ATTACHMENT_FRONT_LEFT];
|
||||
|
||||
bool do_kopper_update = is_window && ptex && screen->fd == -1;
|
||||
if (drawable->info.bos.sType == VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR && do_kopper_update)
|
||||
zink_kopper_update(pscreen, ptex, &drawable->w, &drawable->h);
|
||||
zink_kopper_update(kopper_get_zink_screen(screen->base.screen), ptex, &drawable->w, &drawable->h);
|
||||
else
|
||||
get_drawable_info(drawable, &x, &y, &drawable->w, &drawable->h);
|
||||
}
|
||||
@@ -602,7 +601,6 @@ kopperSetSwapInterval(__DRIdrawable *dPriv, int interval)
|
||||
{
|
||||
struct dri_drawable *drawable = dri_drawable(dPriv);
|
||||
struct dri_screen *screen = drawable->screen;
|
||||
struct pipe_screen *pscreen = screen->unwrapped_screen;
|
||||
struct pipe_resource *ptex = drawable->textures[ST_ATTACHMENT_BACK_LEFT] ?
|
||||
drawable->textures[ST_ATTACHMENT_BACK_LEFT] :
|
||||
drawable->textures[ST_ATTACHMENT_FRONT_LEFT];
|
||||
@@ -614,8 +612,10 @@ kopperSetSwapInterval(__DRIdrawable *dPriv, int interval)
|
||||
* we're before allocation, then the initial_swap_interval will be used when
|
||||
* the swapchain is eventually created.
|
||||
*/
|
||||
if (ptex)
|
||||
if (ptex) {
|
||||
struct pipe_screen *pscreen = kopper_get_zink_screen(screen->base.screen);
|
||||
zink_kopper_set_swap_interval(pscreen, ptex, interval);
|
||||
}
|
||||
drawable->info.initial_swap_interval = interval;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user