mirror of
https://github.com/genodelabs/genode.git
synced 2025-04-22 01:53:00 +00:00
mesa/libdrm: remove signal EP
This is a left over from Mesa-11 and we exchanged it with a 'wait_and_dispatch_one_io_signal' for synchronous signal waits. issue #4260
This commit is contained in:
parent
3daa94ff2e
commit
07881f90a9
repos/libports/src
@ -160,8 +160,8 @@ class Drm_call
|
||||
Genode::Heap _heap { _env.ram(), _env.rm() };
|
||||
Gpu::Connection _gpu_session { _env };
|
||||
Gpu::Info _gpu_info { _gpu_session.info() };
|
||||
Genode::Blockade _completion_lock { };
|
||||
size_t _available_gtt_size { _gpu_info.aperture_size };
|
||||
bool _complete { false };
|
||||
|
||||
using Offset = unsigned long;
|
||||
|
||||
@ -391,7 +391,7 @@ class Drm_call
|
||||
void _handle_completion()
|
||||
{
|
||||
/* wake up possible waiters */
|
||||
_completion_lock.wakeup();
|
||||
_complete = true;
|
||||
}
|
||||
|
||||
Genode::Io_signal_handler<Drm_call> _completion_sigh {
|
||||
@ -1052,9 +1052,8 @@ class Drm_call
|
||||
|
||||
public:
|
||||
|
||||
Drm_call(Genode::Env &env, Genode::Entrypoint &signal_ep)
|
||||
: _env(env),
|
||||
_completion_sigh(signal_ep, *this, &Drm_call::_handle_completion)
|
||||
Drm_call(Genode::Env &env)
|
||||
: _env(env)
|
||||
{
|
||||
/* make handle id 0 unavailable, handled as invalid by iris */
|
||||
drm_syncobj_create reserve_id_0 { };
|
||||
@ -1141,8 +1140,12 @@ class Drm_call
|
||||
: _generic_ioctl(command_number(request), arg);
|
||||
}
|
||||
|
||||
void wait_for_completion() {
|
||||
_completion_lock.block();
|
||||
void wait_for_completion()
|
||||
{
|
||||
_complete = false;
|
||||
|
||||
while (_complete == false)
|
||||
_env.ep().wait_and_dispatch_one_io_signal();
|
||||
|
||||
/* make done buffer objects */
|
||||
Gpu::Info gpu_info { _gpu_session.info() };
|
||||
@ -1166,9 +1169,9 @@ class Drm_call
|
||||
static Genode::Constructible<Drm_call> _call;
|
||||
|
||||
|
||||
void drm_init(Genode::Env &env, Genode::Entrypoint &signal_ep)
|
||||
void drm_init(Genode::Env &env)
|
||||
{
|
||||
_call.construct(env, signal_ep);
|
||||
_call.construct(env);
|
||||
}
|
||||
|
||||
|
||||
|
@ -18,10 +18,9 @@ extern "C" {
|
||||
#include <platform.h>
|
||||
}
|
||||
|
||||
extern Genode::Entrypoint &genode_entrypoint();
|
||||
extern void drm_init(Genode::Env &env, Genode::Entrypoint &ep);
|
||||
extern void drm_init(Genode::Env &env);
|
||||
|
||||
void genode_drm_init()
|
||||
{
|
||||
drm_init(*genode_env, genode_entrypoint());
|
||||
drm_init(*genode_env);
|
||||
}
|
||||
|
@ -41,14 +41,6 @@ extern "C" {
|
||||
|
||||
Genode::Env *genode_env;
|
||||
|
||||
static Genode::Constructible<Genode::Entrypoint> signal_ep;
|
||||
|
||||
Genode::Entrypoint &genode_entrypoint()
|
||||
{
|
||||
return *signal_ep;
|
||||
}
|
||||
|
||||
|
||||
struct Window : Genode_egl_window
|
||||
{
|
||||
using View_handle = Gui::Session::View_handle;
|
||||
@ -183,7 +175,5 @@ static void construct_component(Libc::Env &env)
|
||||
void Libc::Component::construct(Libc::Env &env)
|
||||
{
|
||||
genode_env = &env;
|
||||
signal_ep.construct(env, 1024*sizeof(long), "eglut_signal_ep",
|
||||
Genode::Affinity::Location());
|
||||
Libc::with_libc([&] () { construct_component(env); });
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user