mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-24 12:23:05 +08:00
Dont allocate dynamic memory when preparing params for vm bind call
Related-To: NEO-6837 Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
33340d28f7
commit
d3b7ea10c8
@@ -72,6 +72,8 @@ struct UuidRegisterResult {
|
||||
};
|
||||
|
||||
using MemRegionsVec = StackVec<MemoryClassInstance, 5>;
|
||||
using VmBindExtSetPatT = uint8_t[40];
|
||||
using VmBindExtUserFenceT = uint8_t[56];
|
||||
|
||||
class IoctlHelper {
|
||||
public:
|
||||
@@ -110,10 +112,8 @@ class IoctlHelper {
|
||||
virtual uint32_t getFlagsForVmCreate(bool disableScratch, bool enablePageFault) = 0;
|
||||
virtual uint32_t createContextWithAccessCounters(Drm *drm, drm_i915_gem_context_create_ext &gcc) = 0;
|
||||
virtual uint32_t createCooperativeContext(Drm *drm, drm_i915_gem_context_create_ext &gcc) = 0;
|
||||
virtual std::unique_ptr<uint8_t[]> createVmBindExtSetPat() = 0;
|
||||
virtual void fillVmBindExtSetPat(const std::unique_ptr<uint8_t[]> &vmBindExtSetPat, uint64_t patIndex, uint64_t nextExtension) = 0;
|
||||
virtual std::unique_ptr<uint8_t[]> createVmBindExtUserFence() = 0;
|
||||
virtual void fillVmBindExtUserFence(const std::unique_ptr<uint8_t[]> &vmBindExtUserFence, uint64_t fenceAddress, uint64_t fenceValue, uint64_t nextExtension) = 0;
|
||||
virtual void fillVmBindExtSetPat(VmBindExtSetPatT &vmBindExtSetPat, uint64_t patIndex, uint64_t nextExtension) = 0;
|
||||
virtual void fillVmBindExtUserFence(VmBindExtUserFenceT &vmBindExtUserFence, uint64_t fenceAddress, uint64_t fenceValue, uint64_t nextExtension) = 0;
|
||||
virtual std::optional<uint64_t> getCopyClassSaturatePCIECapability() = 0;
|
||||
virtual std::optional<uint64_t> getCopyClassSaturateLinkCapability() = 0;
|
||||
virtual uint32_t getVmAdviseAtomicAttribute() = 0;
|
||||
@@ -163,10 +163,8 @@ class IoctlHelperUpstream : public IoctlHelper {
|
||||
uint32_t getFlagsForVmCreate(bool disableScratch, bool enablePageFault) override;
|
||||
uint32_t createContextWithAccessCounters(Drm *drm, drm_i915_gem_context_create_ext &gcc) override;
|
||||
uint32_t createCooperativeContext(Drm *drm, drm_i915_gem_context_create_ext &gcc) override;
|
||||
std::unique_ptr<uint8_t[]> createVmBindExtSetPat() override;
|
||||
void fillVmBindExtSetPat(const std::unique_ptr<uint8_t[]> &vmBindExtSetPat, uint64_t patIndex, uint64_t nextExtension) override;
|
||||
std::unique_ptr<uint8_t[]> createVmBindExtUserFence() override;
|
||||
void fillVmBindExtUserFence(const std::unique_ptr<uint8_t[]> &vmBindExtUserFence, uint64_t fenceAddress, uint64_t fenceValue, uint64_t nextExtension) override;
|
||||
void fillVmBindExtSetPat(VmBindExtSetPatT &vmBindExtSetPat, uint64_t patIndex, uint64_t nextExtension) override;
|
||||
void fillVmBindExtUserFence(VmBindExtUserFenceT &vmBindExtUserFence, uint64_t fenceAddress, uint64_t fenceValue, uint64_t nextExtension) override;
|
||||
std::optional<uint64_t> getCopyClassSaturatePCIECapability() override;
|
||||
std::optional<uint64_t> getCopyClassSaturateLinkCapability() override;
|
||||
uint32_t getVmAdviseAtomicAttribute() override;
|
||||
@@ -229,10 +227,8 @@ class IoctlHelperPrelim20 : public IoctlHelper {
|
||||
uint32_t getFlagsForVmCreate(bool disableScratch, bool enablePageFault) override;
|
||||
uint32_t createContextWithAccessCounters(Drm *drm, drm_i915_gem_context_create_ext &gcc) override;
|
||||
uint32_t createCooperativeContext(Drm *drm, drm_i915_gem_context_create_ext &gcc) override;
|
||||
std::unique_ptr<uint8_t[]> createVmBindExtSetPat() override;
|
||||
void fillVmBindExtSetPat(const std::unique_ptr<uint8_t[]> &vmBindExtSetPat, uint64_t patIndex, uint64_t nextExtension) override;
|
||||
std::unique_ptr<uint8_t[]> createVmBindExtUserFence() override;
|
||||
void fillVmBindExtUserFence(const std::unique_ptr<uint8_t[]> &vmBindExtUserFence, uint64_t fenceAddress, uint64_t fenceValue, uint64_t nextExtension) override;
|
||||
void fillVmBindExtSetPat(VmBindExtSetPatT &vmBindExtSetPat, uint64_t patIndex, uint64_t nextExtension) override;
|
||||
void fillVmBindExtUserFence(VmBindExtUserFenceT &vmBindExtUserFence, uint64_t fenceAddress, uint64_t fenceValue, uint64_t nextExtension) override;
|
||||
std::optional<uint64_t> getCopyClassSaturatePCIECapability() override;
|
||||
std::optional<uint64_t> getCopyClassSaturateLinkCapability() override;
|
||||
uint32_t getVmAdviseAtomicAttribute() override;
|
||||
|
||||
Reference in New Issue
Block a user