미르는 GNU / 리눅스 시스템에서 그래픽 코 프로세서에 대한 효율적인 지원을 제공하기 위해 바닥부터 설계되었습니다 오픈 소스와 무료 디스플레이 서버 기술입니다. 그것은 세계 했음에 대한 캐 노니 컬에 의해 개발된다. 가장 인기있는 무료 운영 체제, 우분투
클라이언트와 서버 구현
미르는 모두 클라이언트 (libmirclient)와 서버 (libmirserver)로 배포됩니다. 그것은 우분투 및 그 유도체의 X 윈도우 시스템 (X.Org)를위한 드롭 인 교체로 설계되었습니다. 또한 안드로이드 그래픽 드라이버와 호환됩니다.
는 미르와 XMir 제품은 캐 노니 컬에 의해 개발 된 우분투 리눅스 운영 체제의 향후 릴리스에서 기본적으로 배포됩니다. 또한 스마트 폰과 태블릿에 전력을 공급 우분투 터치 모바일 운영 시스템의 현재 안정판에 사용하는 기본 표시 서버입니다.
무엇 했음; 포함 s의
미르는 이러한 컴포 지터, 입력 관리, 출력 관리, 응용 프로그램 관리자뿐만 아니라 간 응용 프로그램 데이터 교환 기능 등 현대의 디스플레이 서버에 필수적인 몇 가지 구성 요소, 구성되어 있습니다.
이 소프트웨어와 기능에 어떻게 든 동일한 무겁게 현재 모든 GNU / Linux 배포판의 99.9 %에 구현되어 널리 사용되는 X.Org 디스플레이 서버뿐만 아니라 아주 새로운 WAYLAND 디스플레이 서버에서 영감이다.
EGL / GL (ES)으로 설계된 기존의 하드웨어 컴포 지터의 대부분을 지원하고, 안드로이드 드라이버 모델을 구현 기존 드라이버를 활용하도록 설계되었다.
후드 및 지원되는 운영 체제에서
프로그램은 플랫폼에 독립적이며, GNU / 리눅스 시스템, BSD 배포판뿐만 아니라 다른 UNIX와 같은 플랫폼에서 실행하도록 설계된 C ++ 프로그래밍 언어로 작성.
이 성공적으로 32 비트 및 64 비트 명령어 세트 두 아키텍처에서 테스트되었으며, 최신 버전의 운영 체제 우분투 리눅스의 현재 버전 또는 공식 저장소에서 최신 소스 코드를 잡아 테스트 할 수 있습니다.
이 릴리스의 새로운 기능입니다 무엇 :
향상 :
클라이언트 - 화면 지연 시간을 측정하기 위해 고속 비디오 카메라를 사용할 수있는 새로운 도구 'mirvanity'를 추가.
(GLESv2에 찬성 기본적으로 비활성화) 바탕 화면 전체 OpenGL을 서버에 대한 추가 (빌드 타임)을 지원합니다.
도입 된 새로운 버퍼의 의미 (NBS)과는 기본적으로 활성화.
, mir_demo_standalone_render_overlays에 libmirserver 사용하여 덜 복잡 흔적을 bringup하게 피했다.
예를 들어, 서버에서 TilingWindowManager 제거되었습니다.
'mir_performance_tests'의 일환으로 실행되는 두 개의 새로운 미르 _ * _ performance_test 도구가 추가되었습니다.
클라이언트 API에 추가 포인터 감금.
소프트웨어 EGLStreams을 지원하는 새로운 플랫폼을 추가했습니다.
중첩 된 서버가 사용할 수있는 입력 플랫폼을 추가했습니다.
application_not_responding_detector의 구성을 허용
XKBMapper를 사용하여 서버 측 keymapping을 처리합니다.
오프 스크린 디스플레이를 제거합니다.
서버가 중지 약 껍질을 통지하는 콜백 옵션을 추가합니다.
안드로이드에 ANativeWindow 이벤트에 대한 로깅을 추가합니다.
ABI 요약 :
9에서 변경 mirclient ABI
mirserver ABI는 (41)에 충돌
6에서 변경 mircommon ABI
mirplatform ABI (12)에 충돌
3에서 변경 mirprotobuf ABI
mirplatformgraphics ABI는 10로 충돌
5에서 변경 mirclientplatform ABI
5에서 변경 mirinputplatform ABI
이 버전 0.18.0의 새로운 기능 :
그래픽 :
VULKAN에 필요한 내부 준비 작업은 하드웨어 멀티미디어 최적화하고, 중첩 된 서버에 대한 대기 시간 개선을 디코딩.
플러그인 렌더러에 대한 작업을 시작했다. 이것은 더 나은 우리가 장치에 VULKAN / GLES 스택이 없을 수도 만약 IoT에 대한 미르을 준비하고 CPU를 사용 할 수도 있습니다.
Xmir (고르지 검은 막대)에 영향을 미치는 그래픽 손상에 대한 수정
다중 모니터 시나리오에 대한 다양한 수정뿐만 아니라, 버퍼 크기 조정을위한 더 나은 지원은 모니터의를에 이용할 수 있습니다.
입력:
기본적으로 libinput 사용합니다. 우리는 안드로이드 입력 스택의 이전 버전에 기대어 있었다. 완전히 libinput를 사용하여 찬성이를 제거합니다.
버그 :
버그 수정의 아주 긴 목록. 이들 중 일부는 '야생'결코 없었다 그러나 0.18 개발 과정에서 존재했다.
이 버전 0.17.0의 새로운 기능 :
ABI 요약 : 전용 서버와 그래픽 드라이버를 재 구축 할 필요가;
9에서 변경 Mirclient ABI
Mirserver ABI는 35로 충돌
5에서 변경 Mircommon ABI
Mirplatform ABI (11)에 충돌
Mirprotobuf ABI은 3 충돌
Mirplatformgraphics ABI은 6 충돌
3에서 변경 Mirclientplatform ABI
향상된 기능 :
libmircookie 소개, 협력 프로세스 그룹에 대한 간단한 메커니즘을 나눠 신뢰할 수없는 제 3 자에 타임 스탬프를 위조하기 어려운 확인합니다.
더 많은 리팩토링은 GL 이외의 렌더링을 지원합니다.
클라이언트 API에 MirBlob 추가 - 도구를 직렬화 및 데이터를 역 직렬화를 위해.
아직 기본적으로 사용하지 않는 libinput 기반 입력 플랫폼을 소개합니다.
표면 구조에 이벤트를 송신하도록 쉘을위한 메커니즘을 제공한다.
미르 :: 쉘을 제공 :: DisplayConfigurationController가 적절한 고객에게 통지, 포탄이 제대로 표시 구성을 변경할 수 있도록.
새로운 DSO 버전 가이드.
클라이언트에 표면이에 현재 출력 (dpi로, 폼 팩터, 규모)에 관한 이벤트를 보냅니다.
[강화] XMir 특정 문서가 해당 항목에 살아야한다 (LP : # 1200114)
중첩 된 서버 (# 1289072 LP) 커서 지원이 필요
클라이언트가 여러 번 (# 1308133 LP)로 설정 될 때까지 미르 커서가 / 보이지 않는 없습니다
[회귀 분석] (Xmir의 -sw 등) 전체 화면 소프트웨어 표면 미르 서버를 중단 할 수 있습니다 (LP : # 1493721)
[USC] 미르가 제공 인해 다중 모니터 qtmir (표준 : : 예외 : 무엇을 : 실패 보내는 입력 이벤트)를 입력 종료 (LP : # 1496069)
마우스 커서가 중첩 된 클라이언트의 표면적 들어가면 사라 (LP # 1496849)
외부 모니터를 연결 할 때 [안드로이드] 입력이 전달되지 않습니다 (LP : # 1498045)
외부 디스플레이가 연결되어있을 때 [안드로이드] 입력 좌표를 잘못 조정됩니다 (LP : # 1498540)
[안드로이드] 표준 : : 예외 : 무엇을 : HWC 세트 중 오류 () 외부 모니터를 분리 할 때 (LP : # 1498550)
테스트는 미리 컴파일 된 헤더없이 컴파일되지 않습니다 (LP : # 1498829)
[안드로이드] 표준 : : 예외 :: 무엇 : FD를 모니터링 할 수 없습니다 : 중첩 된 구성에서 외부 디스플레이를 분리 할 때 작업이 허용되지 않습니다 (LP : # 1499042)
미르는 갑자기 더 이상 메사 (11.0 '이후 빌드합니다.
0-1ubuntu1) '교활한 : /usr/include/EGL/eglplatform.h:100:35 : 치명적인 오류 : 안드로이드 / native_window.h : 해당 파일이나 디렉토리 (LP : # 1499134)
[안드로이드] 중첩 구성에 외부 디스플레이를 분리 다양한 충돌 (LP : # 1501927)
외부 모니터가 연결되어있을 때 커서는 그 자체로 표시된다 (LP : # 1502200)
메사 FTBFS 인해 누락이 mirclient에서 필요에 (LP : # 1503450)
이 버전 0.13.3의 새로운 기능 :
이 MirEvent 정리
(즉, 중첩 된 바이 패스 도움이 될 것입니다) 버퍼 의미 변화에 계속
& quot; 응용 프로그램이 응답 및 없음의; 가지 제안
미르-에-X 가지 제안
미르의 WM 인터페이스를 사용 QtMir 재 작업에 대한 작업을 계속
libinput 변경에 상류로 조정 계속 우리 제안
착륙 과정에서 제거되지 미르 코드와 플랫폼 API
파이썬 기반 반환 한 테스트 프레임 워크 구현을 시작
VULKAN / WSI의 API를 평가 시작
몇 가지 테스트에서 고정 FD 누출
더블 버퍼링 지원
이 버전 0.11.0의 새로운 기능 :
포장 변경 :
미르 드라이버 모델의 변경으로 인해 클라이언트 플랫폼 불리는하여 버전이 더 이상 없습니다. 미르 - 클라이언트 플랫폼에 (메사 - 안드로이드)로 대체 | thusly 히 (안드로이드 메사) libmirplatform5driver-. 새로운 패키지 미르 - 클라이언트 플랫폼 메사-DEV는 mirplatform-dev에 이전에 헤더를 포함 도입된다.
향상된 기능 :
많은 외부 디스플레이를 지원하는 경로에 안드로이드 코드에 더 많은 주요 배관,.
3.6 연타에 대한 지원을 추가합니다.
주요 미르의 서버 클래스의 재 설계 : 쉘, (여전히 진행 중) 장면과 친구.
대화 상자와 툴팁을 생성하는 클라이언트 API가 추가되었습니다.
새로운 표면 상태를 추가 : mir_surface_state_hidden 및 mir_surface_state_horizmaximized.
성능 : 가능하면 최적의 효율적인 조각 음영을 사용합니다.
성능 : (데스크탑) 복합 보이는 지연을 줄이기 위해 대신 트리플의 이중 버퍼링을 사용.
mir_proving_server : 이제 기존의 Alt + middlebuttondrag를 사용하여 가장자리 나 모서리에서 창 크기를 조정할 수 있습니다.
mir_proving_server : 일부 데모 사용자 정의 쉐이더 (: 슈퍼 + N / C 음과 고 대비 모드)가 추가되었습니다.
mir_proving_server :. Alt + F4를 통해 정중 이제 가까운 클라이언트
ABI 요약 : 서버 재 구축이 필요하지만 클라이언트는하지 않습니다; . 8에서 변경되지 않은 Mirclient ABI. 3에서 변경 Mircommon ABI. Mirplatform ABI은 6 부딪쳤다. Mirserver ABI는 29 범프
버그 수정:
부스트 bad_any_cast 예외로 즉시 종료 mir_demo_server [회귀 분석] (LP : # 1414630)
위치 메뉴 및 도구 설명에 방법 (부모 상대 위치)가 필요합니다 (LP : # 1324101)
CI에서 볼 GLibMainLoopTest 실패 (LP : # 1413748)
연타가 CI에 실패 빌드 (LP : # 1416317)
미르 :: 컴포 지터에서 segfault의 :: GLProgramFamily :: 쉐이더 : 초기화 () (LP : # 1416482)
GLRenderer : 기본 프레 그먼트 쉐이더 알파 = 1 차선입니다.
0 (LP : # 1350674)
메사 :: DisplayBuffer :: post_update 트리플 버퍼링이다 - 더 랙이 그것을 필요 이상 (LP : # 1350725)
differen 버몬트에서 시작했을 때 중첩 된 서버에 연결할 수 없습니다 (LP : # 1379266)
[testfail] AsioMainLoopAlarmTest CI 실패 (LP : # 1392256)를
컴포 지터 보고서는 일관성 우회하는 동안 프레임의 시간을보고하고, 그렇지 않으면 렌더링 시간 (LP : # 1408906)
[회귀 분석] mir_demo_client_fingerpaint이 (마우스로) 더 이상 아무것도 페인트하지 않습니다 (LP : # 1413139)
하드웨어 커서가 약간 앞서 합성 이미지 항상 (LP : # 1274408)
통합 테스트가 출력된다 (너무 많은) DisplayServer 로그 메시지 (LP : # 1408231)
(당신이 umockdev가 이미 설치되어있는 경우 제외) [회귀 분석] deploy-and-test.sh가 더 이상 작동하지 않습니다 (LP : # 1413479)
디스플레이 색상 역. 네거티브 이미지를 전환 (LP : # 1400580)
미르 - 우분투 - 생생한-armhf-CI는 지속적으로 실패 (LP : # 1407863)
더블 버퍼링 표면은 지연 또는 정지 할 수 있습니다 이벤트 중심의 지속적 다시 그릴하지 않을 경우 (LP : # 1395581)
포인터의 움직임과 교차 이벤트가 누락 (LP : # 1417650)
이 버전 0.8의 새로운 기능 :
시각에 touchspots에 대한 지원은 성능의 비용이기는하지만 화면에 터치 위치를 보여줍니다.
미르 클라이언트는 현재 프레임 속도와 같은 성능 정보를 노출하고 표준 출력 성능 정보를 덤프 MIR_CLIENT_PERF_REPORT = 로그 환경 변수를 설정을 통해 시간을 렌더링 할 수 있습니다.
등, 외부 프로젝트에서 사용하지 않은 것을 노출되는 헤더를 숨기고 ABI 나누기에 덜 감도는 ABI의 파손을 감지 이제 더 스크립트가있다.
적은 지연 부드러운 스크롤을 포함하여 - 더 향상된 응답 성을 터치합니다.
하드웨어 오버레이는 이제 기본적으로 사용하도록 설정되어 있습니다.
버그 수정 많은 수의.
이 버전 0.1.2의 새로운 기능 :
그래픽 : 안드로이드 : MGA에 대한 인터페이스 :: 렌더링 및 게시와 DisplayDevice 너무 그냥 걱정을 향상시킬 수 있습니다.
표면 : 이름을 & quot;면 & quot; 장면 & quot ;., 구성 요소 quot를 &하기
표면은 쉘 : 표면에 쉘에서 세션 데이터 모델을 마이그레이션합니다.
그래픽 : 변경 fill_ipc_package ()는 실제 포인터를 사용합니다.
mir_client_library.h :; 수행 및 잠금 & quot 오타 & quot 수정; 어떤 잠금 & quot을 ;.; 수 & quot한다
API 열거 정리 : 약간 * _enum_max_ 값을 오해하고,보다 정확한 복수 형태로 대체 제거합니다.
test_android_communication_package는 : 될 FD된다을 열어 기대하지 마십시오 0, 우리는이에게 유효한 값 (LP : # 1247718)를 만드는 표준 입력을 닫을 수 있습니다.
바탕 화면에 미르를 실행하는 방법에 대한 업데이트 문서는 새 패키지 우분투 데스크탑 - 미르를 언급.
오프 스크린 : 오프 스크린 버퍼로 출력을 렌더링 디스플레이를 추가
그래픽 : 안드로이드 (# 1252433 LP) r1228에 도입 hwc1.0 장치에 대한 회귀를 해결.
OffscreenPlatform는 오프 스크린 디스플레이가 플랫폼에서 필요로하는 서비스를 제공합니다.
그래픽 : 안드로이드 : 사용중인 GLContexts 클래스를 통합.
임의 drm_auth_magic 테스트 실패의 원인이 초기화되지 않은 변수를 수정합니다. (LP # 1252144).
예제 코드 지원을 크기 조정 추가; 데모 - 쉘 및 클라이언트.
eglapp : 픽셀 포맷 (# 1168304 LP)에 대한 메시지를 명확히.
tool_type라는 pointer_coordinates 아래 MirMotionEvent에 지원 추가합니다. 이것은 클라이언트가 마우스 / 손가락 / 등에서, 도구의 종류를 사용하고 말할 수 있습니다. (LP : # 1252498)
클라이언트, 프론트 엔드 : 고객에게 실제 사용할 수 표면의 픽셀 포맷을보고합니다. (LP : # 1240833)
그래픽 : 안드로이드 : 1) 변경 hwc1.1는 컴포 지터의 GL의 renderloop 동안 동기 울타리의 사용을 확인합니다. 우리는 더 이상 완료 렌더링을 위해, 우리는 드라이버와 커널이 책임을 통과 기다릴 있습니다. 2) 지원 넥서스 10 (LP : # 1,252,173) (LP : # 1203268)
쉘 : SurfacesContainer을 게시하지 않습니다 - 그것은 쉘에 전용 될 수 있습니다.
GBM : 그것은 VT_AUTO 있다면하지 마십시오 엉망 설치 실패의 VT 모드 만 종료하는 동안 이전 VT 모드를 복원합니다.
때문에 중첩 모드에서 실패 eglMakeCurrent () 호출 할 때 충돌을 해결합니다.쉘 : 연합 - 미르 쉘 :: FocusSetter를 사용 - 다시 헤더를 공개
클라이언트 표면 (미르 :: 클라이언트 :: MirSurface)에 대한 지원의 크기를 조정 추가합니다.
그래픽 : 안드로이드 : 지원 '오래된 일명 2012'넥서스 7 HWC (NVIDIA tegra3 SOC) 더. (LP : # 1231917)
* ClientBuffer 클래스에 크기 조정 지원을 추가합니다. 이제 항상 최신 버퍼 패키지의 크기를 얻을.
안드로이드 (넥서스 10 현재) 말리 T604에 대한 드라이버 후크 지원
크기 조정 표면에 대비, 프로토콜 버퍼 메시지에 폭과 높이를 추가합니다.
표면, 쉘, 로깅, 검사 : 표면에 전용 될 수 있습니다 헤더를 게시하지 않습니다. 표면 / basic_surface.h, 표면 / surface_controller.h 쉘 / surface_builder.h
예 : (가)의 슈팅이 골대를 렌더링 파괴 할 때 바인딩 GL 프레임 버퍼를 복원
예는 표면이 쉘 : BasicSurface에 render_surfaces 종속성을 제거
형상 : 헤더에서 스트리밍 사업자의 구현 제거 (LP를 : # 1247820)
이 세션 컨테이너의 기능의 접이식, 등록 순서 초점 시퀀스를 제거합니다.
클라이언트를 대신하여 새로운 버퍼를 취득하기 전에 버퍼 리소스를 취득한 세션 매개체 방출을 보장한다.(# 1249210 LP)이 성능 저하를 해결합니다.
test_client_input.cpp에 일부 정리.
& quot의 무리를 고려, ClientConfigCommon & quot을 ;.
세션 용기 시험에 작은 정리 캡슐화를 증가시킵니다.
쉘, 표면 : & quot 또 다른 단계; 고정 & quot; 표면 계층 구조는 - 전용 인터페이스를 게시하고 표면에 데이터 모델을 넣어.
그래픽 : 안드로이드 : HWC1.1는 프레임 버퍼 픽셀 형식에 대한 자세한 정보를 얻을 수 EGL을 사용합니다.
(안드로이드-armhf을위한 건물) = ON FTBS 사용 use_debflags을 수정합니다. (LP : # 1248014)
클라이언트 입력 수신기 보고서를 추가합니다.
문서 : doxygen이 1.8.4 그렇게 실행 & quot 사용되지 않는 구성에 대해 불평, doxygen이 유 Doxyfile.in & quot을 ;.
서버 측 표면 클래스의 크기 조정 ()를 구현합니다.
안드로이드 : MGA :: DisplayBuffer 및 MGA 정리 :: DisplayBufferFactory을
크기 조정 표면에 대비, BufferStream에 크기 조정 () 지원을 추가합니다.
새로 복원 된 LP에서 메타 데이터 변경 내용을 병합 : 미르를
테스트 : mg의 :: GraphicBufferAllocator 스텁을 중복 제거.
예 : 미르 / 쉘 / surface.h의 가짜 사용을 제거합니다.프론트 엔드 : 수면 클래스 계층 구조에서 ClientTrackingSurface를 제거
서버에서 ABI 당김은 libmirserver11합니다.
언급 & 없음의 마십시오 렌더링 가능한 & quot을 ;. 그 인터페이스는 지금 꽤 많은 시간 동안 존재하지 않았습니다.
안드로이드 입력 : 자세한 고유 한 터치 ID를 할당합니다.
이 새로운 단위 테스트, 다양한 수정 내부 헤더를 게시 피하기 위해, 미르을 지정하기위한 지원 서버 이름을 중첩 중 하나 --name =를 통해 :
이 버전 0.1.1의 새로운 기능입니다 인수 또는 MIR_SERVER_NAME 환경 변수, 미르 안드로이드 표시 클래스의 리팩토링, 표면 크기 조정 지원을 제공 향한 첫 번째 단계.
댓글을 찾을 수 없습니다