Loading libs/vr/libdisplay/display_client.cpp +38 −4 Original line number Diff line number Diff line Loading @@ -104,10 +104,8 @@ Status<void> Surface::SetAttributes(const SurfaceAttributes& attributes) { return {}; } Status<std::unique_ptr<ProducerQueue>> Surface::CreateQueue(uint32_t width, uint32_t height, uint32_t format, size_t metadata_size) { Status<std::unique_ptr<ProducerQueue>> Surface::CreateQueue( uint32_t width, uint32_t height, uint32_t format, size_t metadata_size) { ALOGD_IF(TRACE, "Surface::CreateQueue: Creating empty queue."); auto status = InvokeRemoteMethod<DisplayProtocol::CreateQueue>( ProducerQueueConfigBuilder() Loading Loading @@ -190,6 +188,42 @@ Status<std::unique_ptr<Surface>> DisplayClient::CreateSurface( return ErrorStatus(error); } pdx::Status<std::unique_ptr<IonBuffer>> DisplayClient::SetupGlobalBuffer( DvrGlobalBufferKey key, size_t size, uint64_t usage) { auto status = InvokeRemoteMethod<DisplayProtocol::SetupGlobalBuffer>(key, size, usage); if (!status) { ALOGE( "DisplayClient::SetupGlobalBuffer: Failed to create the global buffer " "%s", status.GetErrorMessage().c_str()); return status.error_status(); } auto ion_buffer = std::make_unique<IonBuffer>(); auto native_buffer_handle = status.take(); const int ret = native_buffer_handle.Import(ion_buffer.get()); if (ret < 0) { ALOGE( "DisplayClient::GetGlobalBuffer: Failed to import global buffer: " "key=%d; error=%s", key, strerror(-ret)); return ErrorStatus(-ret); } return {std::move(ion_buffer)}; } pdx::Status<void> DisplayClient::DeleteGlobalBuffer(DvrGlobalBufferKey key) { auto status = InvokeRemoteMethod<DisplayProtocol::DeleteGlobalBuffer>(key); if (!status) { ALOGE("DisplayClient::DeleteGlobalBuffer Failed: %s", status.GetErrorMessage().c_str()); } return status; } Status<std::unique_ptr<IonBuffer>> DisplayClient::GetGlobalBuffer( DvrGlobalBufferKey key) { auto status = InvokeRemoteMethod<DisplayProtocol::GetGlobalBuffer>(key); Loading libs/vr/libdisplay/display_manager_client.cpp +0 −38 Original line number Diff line number Diff line Loading @@ -32,44 +32,6 @@ DisplayManagerClient::GetSurfaceState() { return status; } pdx::Status<std::unique_ptr<IonBuffer>> DisplayManagerClient::SetupGlobalBuffer( DvrGlobalBufferKey key, size_t size, uint64_t usage) { auto status = InvokeRemoteMethod<DisplayManagerProtocol::SetupGlobalBuffer>( key, size, usage); if (!status) { ALOGE( "DisplayManagerClient::SetupGlobalBuffer: Failed to create the global " "buffer %s", status.GetErrorMessage().c_str()); return status.error_status(); } auto ion_buffer = std::make_unique<IonBuffer>(); auto native_buffer_handle = status.take(); const int ret = native_buffer_handle.Import(ion_buffer.get()); if (ret < 0) { ALOGE( "DisplayManagerClient::GetGlobalBuffer: Failed to import global " "buffer: key=%d; error=%s", key, strerror(-ret)); return ErrorStatus(-ret); } return {std::move(ion_buffer)}; } pdx::Status<void> DisplayManagerClient::DeleteGlobalBuffer( DvrGlobalBufferKey key) { auto status = InvokeRemoteMethod<DisplayManagerProtocol::DeleteGlobalBuffer>(key); if (!status) { ALOGE("DisplayManagerClient::DeleteGlobalBuffer Failed: %s", status.GetErrorMessage().c_str()); } return status; } pdx::Status<std::unique_ptr<ConsumerQueue>> DisplayManagerClient::GetSurfaceQueue(int surface_id, int queue_id) { auto status = InvokeRemoteMethod<DisplayManagerProtocol::GetSurfaceQueue>( Loading libs/vr/libdisplay/include/private/dvr/display_client.h +3 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,9 @@ class DisplayClient : public pdx::ClientBase<DisplayClient> { public: pdx::Status<Metrics> GetDisplayMetrics(); pdx::Status<std::string> GetConfigurationData(ConfigFileType config_type); pdx::Status<std::unique_ptr<IonBuffer>> SetupGlobalBuffer( DvrGlobalBufferKey key, size_t size, uint64_t usage); pdx::Status<void> DeleteGlobalBuffer(DvrGlobalBufferKey key); pdx::Status<std::unique_ptr<IonBuffer>> GetGlobalBuffer( DvrGlobalBufferKey key); pdx::Status<std::unique_ptr<Surface>> CreateSurface( Loading libs/vr/libdisplay/include/private/dvr/display_manager_client.h +0 −3 Original line number Diff line number Diff line Loading @@ -21,9 +21,6 @@ class DisplayManagerClient : public pdx::ClientBase<DisplayManagerClient> { ~DisplayManagerClient() override; pdx::Status<std::vector<SurfaceState>> GetSurfaceState(); pdx::Status<std::unique_ptr<IonBuffer>> SetupGlobalBuffer( DvrGlobalBufferKey key, size_t size, uint64_t usage); pdx::Status<void> DeleteGlobalBuffer(DvrGlobalBufferKey key); pdx::Status<std::unique_ptr<ConsumerQueue>> GetSurfaceQueue(int surface_id, int queue_id); Loading libs/vr/libdisplay/include/private/dvr/display_protocol.h +7 −7 Original line number Diff line number Diff line Loading @@ -200,6 +200,8 @@ struct DisplayProtocol { enum { kOpGetMetrics = 0, kOpGetConfigurationData, kOpSetupGlobalBuffer, kOpDeleteGlobalBuffer, kOpGetGlobalBuffer, kOpIsVrAppRunning, kOpCreateSurface, Loading @@ -216,6 +218,11 @@ struct DisplayProtocol { PDX_REMOTE_METHOD(GetMetrics, kOpGetMetrics, Metrics(Void)); PDX_REMOTE_METHOD(GetConfigurationData, kOpGetConfigurationData, std::string(ConfigFileType config_type)); PDX_REMOTE_METHOD(SetupGlobalBuffer, kOpSetupGlobalBuffer, LocalNativeBufferHandle(DvrGlobalBufferKey key, size_t size, uint64_t usage)); PDX_REMOTE_METHOD(DeleteGlobalBuffer, kOpDeleteGlobalBuffer, void(DvrGlobalBufferKey key)); PDX_REMOTE_METHOD(GetGlobalBuffer, kOpGetGlobalBuffer, LocalNativeBufferHandle(DvrGlobalBufferKey key)); PDX_REMOTE_METHOD(IsVrAppRunning, kOpIsVrAppRunning, bool(Void)); Loading @@ -237,8 +244,6 @@ struct DisplayManagerProtocol { enum { kOpGetSurfaceState = 0, kOpGetSurfaceQueue, kOpSetupGlobalBuffer, kOpDeleteGlobalBuffer, }; // Aliases. Loading @@ -250,11 +255,6 @@ struct DisplayManagerProtocol { std::vector<SurfaceState>(Void)); PDX_REMOTE_METHOD(GetSurfaceQueue, kOpGetSurfaceQueue, LocalChannelHandle(int surface_id, int queue_id)); PDX_REMOTE_METHOD(SetupGlobalBuffer, kOpSetupGlobalBuffer, LocalNativeBufferHandle(DvrGlobalBufferKey key, size_t size, uint64_t usage)); PDX_REMOTE_METHOD(DeleteGlobalBuffer, kOpDeleteGlobalBuffer, void(DvrGlobalBufferKey key)); }; struct VSyncSchedInfo { Loading Loading
libs/vr/libdisplay/display_client.cpp +38 −4 Original line number Diff line number Diff line Loading @@ -104,10 +104,8 @@ Status<void> Surface::SetAttributes(const SurfaceAttributes& attributes) { return {}; } Status<std::unique_ptr<ProducerQueue>> Surface::CreateQueue(uint32_t width, uint32_t height, uint32_t format, size_t metadata_size) { Status<std::unique_ptr<ProducerQueue>> Surface::CreateQueue( uint32_t width, uint32_t height, uint32_t format, size_t metadata_size) { ALOGD_IF(TRACE, "Surface::CreateQueue: Creating empty queue."); auto status = InvokeRemoteMethod<DisplayProtocol::CreateQueue>( ProducerQueueConfigBuilder() Loading Loading @@ -190,6 +188,42 @@ Status<std::unique_ptr<Surface>> DisplayClient::CreateSurface( return ErrorStatus(error); } pdx::Status<std::unique_ptr<IonBuffer>> DisplayClient::SetupGlobalBuffer( DvrGlobalBufferKey key, size_t size, uint64_t usage) { auto status = InvokeRemoteMethod<DisplayProtocol::SetupGlobalBuffer>(key, size, usage); if (!status) { ALOGE( "DisplayClient::SetupGlobalBuffer: Failed to create the global buffer " "%s", status.GetErrorMessage().c_str()); return status.error_status(); } auto ion_buffer = std::make_unique<IonBuffer>(); auto native_buffer_handle = status.take(); const int ret = native_buffer_handle.Import(ion_buffer.get()); if (ret < 0) { ALOGE( "DisplayClient::GetGlobalBuffer: Failed to import global buffer: " "key=%d; error=%s", key, strerror(-ret)); return ErrorStatus(-ret); } return {std::move(ion_buffer)}; } pdx::Status<void> DisplayClient::DeleteGlobalBuffer(DvrGlobalBufferKey key) { auto status = InvokeRemoteMethod<DisplayProtocol::DeleteGlobalBuffer>(key); if (!status) { ALOGE("DisplayClient::DeleteGlobalBuffer Failed: %s", status.GetErrorMessage().c_str()); } return status; } Status<std::unique_ptr<IonBuffer>> DisplayClient::GetGlobalBuffer( DvrGlobalBufferKey key) { auto status = InvokeRemoteMethod<DisplayProtocol::GetGlobalBuffer>(key); Loading
libs/vr/libdisplay/display_manager_client.cpp +0 −38 Original line number Diff line number Diff line Loading @@ -32,44 +32,6 @@ DisplayManagerClient::GetSurfaceState() { return status; } pdx::Status<std::unique_ptr<IonBuffer>> DisplayManagerClient::SetupGlobalBuffer( DvrGlobalBufferKey key, size_t size, uint64_t usage) { auto status = InvokeRemoteMethod<DisplayManagerProtocol::SetupGlobalBuffer>( key, size, usage); if (!status) { ALOGE( "DisplayManagerClient::SetupGlobalBuffer: Failed to create the global " "buffer %s", status.GetErrorMessage().c_str()); return status.error_status(); } auto ion_buffer = std::make_unique<IonBuffer>(); auto native_buffer_handle = status.take(); const int ret = native_buffer_handle.Import(ion_buffer.get()); if (ret < 0) { ALOGE( "DisplayManagerClient::GetGlobalBuffer: Failed to import global " "buffer: key=%d; error=%s", key, strerror(-ret)); return ErrorStatus(-ret); } return {std::move(ion_buffer)}; } pdx::Status<void> DisplayManagerClient::DeleteGlobalBuffer( DvrGlobalBufferKey key) { auto status = InvokeRemoteMethod<DisplayManagerProtocol::DeleteGlobalBuffer>(key); if (!status) { ALOGE("DisplayManagerClient::DeleteGlobalBuffer Failed: %s", status.GetErrorMessage().c_str()); } return status; } pdx::Status<std::unique_ptr<ConsumerQueue>> DisplayManagerClient::GetSurfaceQueue(int surface_id, int queue_id) { auto status = InvokeRemoteMethod<DisplayManagerProtocol::GetSurfaceQueue>( Loading
libs/vr/libdisplay/include/private/dvr/display_client.h +3 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,9 @@ class DisplayClient : public pdx::ClientBase<DisplayClient> { public: pdx::Status<Metrics> GetDisplayMetrics(); pdx::Status<std::string> GetConfigurationData(ConfigFileType config_type); pdx::Status<std::unique_ptr<IonBuffer>> SetupGlobalBuffer( DvrGlobalBufferKey key, size_t size, uint64_t usage); pdx::Status<void> DeleteGlobalBuffer(DvrGlobalBufferKey key); pdx::Status<std::unique_ptr<IonBuffer>> GetGlobalBuffer( DvrGlobalBufferKey key); pdx::Status<std::unique_ptr<Surface>> CreateSurface( Loading
libs/vr/libdisplay/include/private/dvr/display_manager_client.h +0 −3 Original line number Diff line number Diff line Loading @@ -21,9 +21,6 @@ class DisplayManagerClient : public pdx::ClientBase<DisplayManagerClient> { ~DisplayManagerClient() override; pdx::Status<std::vector<SurfaceState>> GetSurfaceState(); pdx::Status<std::unique_ptr<IonBuffer>> SetupGlobalBuffer( DvrGlobalBufferKey key, size_t size, uint64_t usage); pdx::Status<void> DeleteGlobalBuffer(DvrGlobalBufferKey key); pdx::Status<std::unique_ptr<ConsumerQueue>> GetSurfaceQueue(int surface_id, int queue_id); Loading
libs/vr/libdisplay/include/private/dvr/display_protocol.h +7 −7 Original line number Diff line number Diff line Loading @@ -200,6 +200,8 @@ struct DisplayProtocol { enum { kOpGetMetrics = 0, kOpGetConfigurationData, kOpSetupGlobalBuffer, kOpDeleteGlobalBuffer, kOpGetGlobalBuffer, kOpIsVrAppRunning, kOpCreateSurface, Loading @@ -216,6 +218,11 @@ struct DisplayProtocol { PDX_REMOTE_METHOD(GetMetrics, kOpGetMetrics, Metrics(Void)); PDX_REMOTE_METHOD(GetConfigurationData, kOpGetConfigurationData, std::string(ConfigFileType config_type)); PDX_REMOTE_METHOD(SetupGlobalBuffer, kOpSetupGlobalBuffer, LocalNativeBufferHandle(DvrGlobalBufferKey key, size_t size, uint64_t usage)); PDX_REMOTE_METHOD(DeleteGlobalBuffer, kOpDeleteGlobalBuffer, void(DvrGlobalBufferKey key)); PDX_REMOTE_METHOD(GetGlobalBuffer, kOpGetGlobalBuffer, LocalNativeBufferHandle(DvrGlobalBufferKey key)); PDX_REMOTE_METHOD(IsVrAppRunning, kOpIsVrAppRunning, bool(Void)); Loading @@ -237,8 +244,6 @@ struct DisplayManagerProtocol { enum { kOpGetSurfaceState = 0, kOpGetSurfaceQueue, kOpSetupGlobalBuffer, kOpDeleteGlobalBuffer, }; // Aliases. Loading @@ -250,11 +255,6 @@ struct DisplayManagerProtocol { std::vector<SurfaceState>(Void)); PDX_REMOTE_METHOD(GetSurfaceQueue, kOpGetSurfaceQueue, LocalChannelHandle(int surface_id, int queue_id)); PDX_REMOTE_METHOD(SetupGlobalBuffer, kOpSetupGlobalBuffer, LocalNativeBufferHandle(DvrGlobalBufferKey key, size_t size, uint64_t usage)); PDX_REMOTE_METHOD(DeleteGlobalBuffer, kOpDeleteGlobalBuffer, void(DvrGlobalBufferKey key)); }; struct VSyncSchedInfo { Loading