Branch
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 43 44 45 46 47 48 49 50 51 52
//
// 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.
//
// CLEventCL.h: Defines the class interface for CLEventCL, implementing CLEventImpl.
#ifndef LIBANGLE_RENDERER_CL_CLEVENTCL_H_
#define LIBANGLE_RENDERER_CL_CLEVENTCL_H_
#include "libANGLE/renderer/cl/cl_types.h"
#include "libANGLE/renderer/CLEventImpl.h"
namespace rx
{
class CLEventCL : public CLEventImpl
{
public:
CLEventCL(const cl::Event &event, cl_event native);
~CLEventCL() override;
cl_event getNative() const;
angle::Result getCommandExecutionStatus(cl_int &executionStatus) override;
angle::Result setUserEventStatus(cl_int executionStatus) override;
angle::Result setCallback(cl::Event &event, cl_int commandExecCallbackType) override;
angle::Result getProfilingInfo(cl::ProfilingInfo name,
size_t valueSize,
void *value,
size_t *valueSizeRet) override;
static std::vector<cl_event> Cast(const cl::EventPtrs &events);
private:
static void CL_CALLBACK Callback(cl_event event, cl_int commandStatus, void *userData);
const cl_event mNative;
};
inline cl_event CLEventCL::getNative() const
{
return mNative;
}
} // namespace rx
#endif // LIBANGLE_RENDERER_CL_CLEVENTCL_H_