class MsdArmConnection

Defined at line 43 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.h

Most methods are called on the connection thread, but some (like PageInMemory)

are called on the device thread. Access to shared state (such as address_space_

and gpu_mappings_) must be protected by address_lock_.

Public Methods

bool ExecuteAtom (size_t * remaining_data_size, magma_arm_mali_atom * atom, std::vector<std::shared_ptr<magma::PlatformSemaphore>> & semaphores, std::deque<std::shared_ptr<magma::PlatformSemaphore>> * deprecated_semaphores)

Defined at line 65 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.cc

msd::msd_client_id_t client_id ()

Defined at line 70 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.h

AddressSpace * address_space_for_testing ()

Defined at line 74 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.h

const AddressSpace * const_address_space ()

Defined at line 77 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.h

void set_address_space_lost ()

Called only on device thread.

Defined at line 107 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.h

bool address_space_lost ()

Defined at line 108 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.h

AddressSpaceObserver * GetAddressSpaceObserver ()

Defined at line 110 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.h

std::shared_ptr<AddressSpace::Owner> GetSharedPtr ()

Defined at line 113 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.h

void IncrementContextCount ()

Defined at line 124 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.h

void DecrementContextCount ()

Defined at line 125 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.h

uint64_t context_count ()

Defined at line 126 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.h

std::thread::id GetDeviceThreadId ()

Defined at line 141 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.h

std::shared_ptr<MsdArmConnection> Create (msd::msd_client_id_t client_id, Owner * owner)

Defined at line 316 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.cc

void ~MsdArmConnection ()

Defined at line 346 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.cc

void InitializeInspectNode (inspect::Node * parent)

Defined at line 324 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.cc

bool RemoveMapping (uint64_t gpu_va)

GpuMapping::Owner implementation.

Defined at line 446 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.cc

bool CreateMapping (uint64_t gpu_va, uint64_t page_offset, uint64_t size, uint64_t flags, std::shared_ptr<MsdArmBuffer> buffer, std::optional<uint64_t> pages_to_grow_on_fault)

Defined at line 393 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.cc

void SetNotificationCallback (msd::NotificationHandler * handler)

Defined at line 989 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.cc

void SendNotificationData (MsdArmAtom * atom)

Defined at line 1000 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.cc

void MarkDestroyed ()

Defined at line 1052 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.cc

size_t PeriodicMemoryPressureCallback ()

Returns the number of bytes freed due to the change.

Defined at line 1081 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.cc

std::optional<ArmMaliResultCode> AllocateJitMemory (const std::shared_ptr<MsdArmSoftAtom> & atom)

Tries to allocate JIT memory for an atom. Returns a status if allocation

finished (successfully or not) or no status if the allocation needs to be

retried after a free is completed.

Defined at line 859 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.cc

void ReleaseJitMemory (const std::shared_ptr<MsdArmSoftAtom> & atom)

Process a JIT memory free operation. Doesn't modify the result code of the atom.

Defined at line 917 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.cc

bool PageInMemory (uint64_t address)

Defined at line 562 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.cc

bool SetCommittedPagesForBuffer (MsdArmBuffer * buffer, uint64_t page_offset, uint64_t page_count)

Defined at line 963 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.cc

bool CommitMemoryForBuffer (MsdArmBuffer * buffer, uint64_t page_offset, uint64_t page_count)

Defined at line 948 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.cc

bool DecommitMemoryForBuffer (MsdArmBuffer * buffer, uint64_t page_offset, uint64_t page_count)

Defined at line 976 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.cc

bool GetVirtualAddressFromPhysical (uint64_t address, uint64_t * virtual_address_out)

This is slow because it iterates over all pages for all mappings. It should be used only

rarely.

Defined at line 1093 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.cc

void SendPerfCounterNotification (const msd::PerfCounterResult & results)

Defined at line 1086 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.cc

magma_status_t EnablePerformanceCounters (std::vector<uint64_t> flags)

Defined at line 1124 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.cc

magma_status_t DumpPerformanceCounters (std::shared_ptr<MsdArmPerfCountPool> pool, uint32_t trigger_id)

Defined at line 1154 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.cc

magma_status_t ReleasePerformanceCounterBufferPool (std::shared_ptr<MsdArmPerfCountPool> pool)

Defined at line 1165 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.cc

magma_status_t AddPerformanceCounterBufferOffsetToPool (std::shared_ptr<MsdArmPerfCountPool> pool, std::shared_ptr<MsdArmBuffer> buffer, uint64_t buffer_id, uint64_t buffer_offset, uint64_t buffer_size)

Defined at line 1178 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.cc

magma_status_t RemovePerformanceCounterBufferFromPool (std::shared_ptr<MsdArmPerfCountPool> pool, std::shared_ptr<MsdArmBuffer> buffer)

Defined at line 1188 of file ../../src/graphics/drivers/msd-arm-mali/src/msd_arm_connection.cc

Records

Friends

class TestConnection