Hash :
1252d9aa
Author :
Date :
2025-05-30T14:16:23
CL: Create frontend event and pass to enqueue APIs Since frontend cl_event object does not depend on enqueue API routines, we can construct it early and then pass to mImpl enqueue API calls (for any backend that needs it). Also update backend routines to init their backend event implementations using frontend event object. Bug: angleproject:444482493 Change-Id: I459dbf34f10cb6b30245479c9966f876d6e905d7 Signed-off-by: Austin Annestrand <a.annestrand@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6941604 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
//
// Copyright 2021 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// CLEventImpl.h: Defines the abstract rx::CLEventImpl class.
#ifndef LIBANGLE_RENDERER_CLEVENTIMPL_H_
#define LIBANGLE_RENDERER_CLEVENTIMPL_H_
#include "libANGLE/renderer/cl_types.h"
namespace rx
{
class CLEventImpl : angle::NonCopyable
{
public:
using Ptr = std::unique_ptr<CLEventImpl>;
using CreateFunc = std::function<Ptr(const cl::Event &)>;
CLEventImpl(const cl::Event &event);
virtual ~CLEventImpl();
virtual angle::Result getCommandExecutionStatus(cl_int &executionStatus) = 0;
virtual angle::Result setUserEventStatus(cl_int executionStatus) = 0;
virtual angle::Result setCallback(cl::Event &event, cl_int commandExecCallbackType) = 0;
virtual angle::Result getProfilingInfo(cl::ProfilingInfo name,
size_t valueSize,
void *value,
size_t *valueSizeRet) = 0;
protected:
const cl::Event &mEvent;
};
} // namespace rx
#endif // LIBANGLE_RENDERER_CLEVENTIMPL_H_