Edit

kc3-lang/angle/src/libANGLE/renderer/CLProgramImpl.h

Branch :

  • Show log

    Commit

  • Author : John Plate
    Date : 2021-06-06 15:46:53
    Hash : 82654e5d
    Message : CL: Add program build commands Add program build commands to front end and pass-through back end. Bug: angleproject:6015 Change-Id: I1175646d35ff050796b718d7f0e269520292b319 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2940839 Commit-Queue: John Plate <jplate@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>

  • src/libANGLE/renderer/CLProgramImpl.h
  • //
    // 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.
    //
    // CLProgramImpl.h: Defines the abstract rx::CLProgramImpl class.
    
    #ifndef LIBANGLE_RENDERER_CLPROGRAMIMPL_H_
    #define LIBANGLE_RENDERER_CLPROGRAMIMPL_H_
    
    #include "libANGLE/renderer/CLKernelImpl.h"
    
    namespace rx
    {
    
    class CLProgramImpl : angle::NonCopyable
    {
      public:
        using Ptr = std::unique_ptr<CLProgramImpl>;
    
        CLProgramImpl(const cl::Program &program);
        virtual ~CLProgramImpl();
    
        virtual std::string getSource(cl_int &errorCode) const = 0;
    
        virtual cl_int build(const cl::DevicePtrs &devices,
                             const char *options,
                             cl::Program *notify) = 0;
    
        virtual cl_int compile(const cl::DevicePtrs &devices,
                               const char *options,
                               const cl::ProgramPtrs &inputHeaders,
                               const char **headerIncludeNames,
                               cl::Program *notify) = 0;
    
        virtual cl_int getInfo(cl::ProgramInfo name,
                               size_t valueSize,
                               void *value,
                               size_t *valueSizeRet) const = 0;
    
        virtual cl_int getBuildInfo(const cl::Device &device,
                                    cl::ProgramBuildInfo name,
                                    size_t valueSize,
                                    void *value,
                                    size_t *valueSizeRet) const = 0;
    
        virtual CLKernelImpl::Ptr createKernel(const cl::Kernel &kernel,
                                               const char *name,
                                               cl_int &errorCode) = 0;
    
        virtual cl_int createKernels(cl_uint numKernels,
                                     CLKernelImpl::CreateFuncs &createFuncs,
                                     cl_uint *numKernelsRet) = 0;
    
      protected:
        const cl::Program &mProgram;
    };
    
    }  // namespace rx
    
    #endif  // LIBANGLE_RENDERER_CLPROGRAMIMPL_H_