lcd debug notes 2(qcom and orise)
1 polarity inversion 面板极性变换方式 可使用的common电极驱动方式 Frame inversion 固定与变动 Row inversion 固定与变动 Column inversion 只能使用固定的common电极电压 Dot inversion 只能使用固定的common电极电压 面板极性变换方式 Flicker的现象 Cr
1 polarity inversion
面板极性变换方式 可使用的common电极驱动方式
Frame inversion 固定与变动
Row inversion 固定与变动
Column inversion 只能使用固定的common电极电压
Dot inversion 只能使用固定的common电极电压
面板极性变换方式 Flicker的现象 Crosstalk(串扰; 串音)的现象
Frame inversion 明显 垂直与水平方向都易发生
Row inversion 不明显 水平方向容易发生
Columninversion 不明显 垂直方向容易发生
Dot inversion 几乎没有 不易发生
Current Orise IC is supported for Column Inversion and Dot Inversion (0xC0B4h Panel Driving Mode)
2 The method of showing layer (qcom)
2.1 Insert the following patch
diff --git a/libhwcomposer/hwc.cpp b/libhwcomposer/hwc.cpp index ae7bb95..3f1a657 100644 --- a/libhwcomposer/hwc.cpp +++ b/libhwcomposer/hwc.cpp @@ -331,11 +331,121 @@ static int hwc_query(struct hwc_composer_device_1* dev, } +inline void getHalPixelFormatStr(int format, char pixelformatstr[]) +{ + if (!pixelformatstr) + return; + + switch(format) { + case HAL_PIXEL_FORMAT_RGBA_8888: + strcpy(pixelformatstr, "RGBA_8888"); + break; + case HAL_PIXEL_FORMAT_RGBX_8888: + strcpy(pixelformatstr, "RGBX_8888"); + break; + case HAL_PIXEL_FORMAT_RGB_888: + strcpy(pixelformatstr, "RGB_888"); + break; + case HAL_PIXEL_FORMAT_RGB_565: + strcpy(pixelformatstr, "RGB_565"); + break; + case HAL_PIXEL_FORMAT_BGRA_8888: + strcpy(pixelformatstr, "BGRA_8888"); + break; + case HAL_PIXEL_FORMAT_RGBA_5551: + strcpy(pixelformatstr, "RGBA_5551"); + break; + case HAL_PIXEL_FORMAT_RGBA_4444: + strcpy(pixelformatstr, "RGBA_4444"); + break; + case HAL_PIXEL_FORMAT_YV12: + strcpy(pixelformatstr, "YV12"); + break; + case HAL_PIXEL_FORMAT_YCbCr_422_SP: + strcpy(pixelformatstr, "YCbCr_422_SP_NV16"); + break; + case HAL_PIXEL_FORMAT_YCrCb_420_SP: + strcpy(pixelformatstr, "YCrCb_420_SP_NV21"); + break; + case HAL_PIXEL_FORMAT_YCbCr_422_I: + strcpy(pixelformatstr, "YCbCr_422_I_YUY2"); + break; + case HAL_PIXEL_FORMAT_NV12_ENCODEABLE: + strcpy(pixelformatstr, "NV12_ENCODEABLE"); + break; + case HAL_PIXEL_FORMAT_YCbCr_420_SP_TILED: + strcpy(pixelformatstr, "YCbCr_420_SP_TILED_TILE_4x2"); + break; + case HAL_PIXEL_FORMAT_YCbCr_420_SP: + strcpy(pixelformatstr, "YCbCr_420_SP"); + break; + case HAL_PIXEL_FORMAT_YCrCb_420_SP_ADRENO: + strcpy(pixelformatstr, "YCrCb_420_SP_ADRENO"); + break; + case HAL_PIXEL_FORMAT_YCrCb_422_SP: + strcpy(pixelformatstr, "YCrCb_422_SP"); + break; + case HAL_PIXEL_FORMAT_R_8: + strcpy(pixelformatstr, "R_8"); + break; + case HAL_PIXEL_FORMAT_RG_88: + strcpy(pixelformatstr, "RG_88"); + break; + case HAL_PIXEL_FORMAT_INTERLACE: + strcpy(pixelformatstr, "INTERLACE"); + break; + default: + sprintf(pixelformatstr, "Unknown0x%X", format); + break; + } +} + +void dump_layers(int layercount, size_t layerIndex, hwc_layer_1_t hwLayers[]) +{ + hwc_layer_1_t *layer = &hwLayers[layerIndex]; + hwc_rect_t sourceCrop = layer->sourceCrop; + hwc_rect_t displayFrame = layer->displayFrame; + private_handle_t *hnd = (private_handle_t *)layer->handle; + char *layer_format=new char[50]; + getHalPixelFormatStr(hnd->format,layer_format); + int composition_type =layer->compositionType; + char sfdumpfile_name[256]; + + sprintf(sfdumpfile_name, "/data/layerdump/dump%03d_layer%d_%dx%d_%s_comp%d.raw", + layercount, layerIndex, hnd->width, hnd->height, + layer_format,composition_type); + FILE* fp = fopen(sfdumpfile_name, "w+"); + if (fp != NULL) { + fwrite((void*)hnd->base, hnd->size, 1, fp); + fclose(fp); + } + +} + static int hwc_set_primary(hwc_context_t *ctx, hwc_display_contents_1_t* list) { ATRACE_CALL(); int ret = 0; const int dpy = HWC_DISPLAY_PRIMARY; if (LIKELY(list) && ctx->dpyAttr[dpy].isActive) { + + char property_fb[PROPERTY_VALUE_MAX]; + static int layer_count =0; + int count_limit=0; + if (property_get("debug.sf.dump", property_fb, NULL) > 0) { + if(atoi(property_fb) > 0) { + count_limit=atoi(property_fb) ; + if (0 == mkdir("/data/layerdump", 0777)) + layer_count=0; + if(layer_count<count_limit for int i="0;i<list-">numHwLayers;i++) + dump_layers(layer_count, i, list->hwLayers); + layer_count ++ ; + } + } + } + + + uint32_t last = list->numHwLayers - 1; hwc_layer_1_t *fbLayer = &list->hwLayers[last]; int fd = -1; //FenceFD from the Copybit(valid in async mode) </count_limit>
2.2 Issue the following command
# setprop debug.sf.dump 100
The dump data is in /data/layerdump folder.
2.3 Issue the following command
# adb pull <remote> <local></local></remote>
2.4 Download the tool: Irfanview and PlugIns
The newest version of Irfanview is 4.36
2.5 Open the corresponding files, such as *.raw
Please notes that the pixels need to be matched to oringinal size. Then the pictures can be shown, as follows:
dump035_layer0_544x960_RGBX_8888_comp1.raw
// layer0 means layer 0; RGBX X means no alpha
dump034_layer1_544x960_RGBA_8888_comp1.raw
dump035_layer2_416x608_RGBA_8888_comp1.raw
// layer2 means layer 2; comp1 means mdpcomp
dump033_layer3_544x960_RGBA_8888_comp1.raw
dump035_layer4_544x960_RGBA_8888_comp3.raw // layer4 means layer 4; comp3 means fb_target
3 popup menu jitter(抖动; 颤动)
According to the methods in div 2, we can capture all layers from hwc.cpp. The root cause is related to the progress of animation. Because of the animation, the actual size of popup menu is variable and the alpha value isn't 0xff until the animation is shown completely. But mdp RGB pipe can't handle this scenario smoothly which causes the edge of popup menu jitter. So if this scenario appears, mdp composition should be disabled.
The animation can be disabled via the following steps:
Settings -> Developer options ->
Window animation scale (off, .5x, 1x, 2x, 5x, 10x)
Transition animation scale
Animator duration scale
So the animation progress can be adjusted if you need to do this. Meanwhile we can disable hw overlay via the option of Disable HW overlays.
4 overlay process
4.1 mdp4_overlay_set (key point)
a. Get pipe from request (struct mdp_overlay ), choose corresponding pipe type;
Where the function checks if the request is valid or not, such as width, height, downscale ratio(1/8), upscale ratio(20(mdp version > 4.1, otherwise 8)) and so on.
b. Return pipe index;
c. Calc mdp clock for current frame and bandwidth;
d. Done.
5 Ghost Shadow
This issue is caused by VCOM. For orise 9605, we can adjust 0xD900h(VCOMDC: VCOM voltage setting, 0x39:-1)
影像残留主要是PANEL Pixel上的正负电压值不对称,解决方案是调整VCOM(寄存器D900)。如果改Panel的翻转方式,也可以改善。如果LCM上有GVDD、NGVDD的测试点,可以量一下这两个点的电压,理论上这两个电压值是一致的!
If we adjust the mode of inversion to dot inversion, the power will increase about 10mA, althrough this way can fix this issue too. I don't think it is a good method.
6 DTYPE_DCS_WRITE (long, short)
#define DTYPE_DCS_LWRITE 0x39 /* long write */ #define DTYPE_DCS_WRITE 0x05 /* short write, 0 parameter */ #define DTYPE_DCS_WRITE1 0x15 /* short write, 1 parameter */ #define DTYPE_DCS_READ 0x06 /* read */
With regard to opening lcd or closing lcd(sleep out/in), it is proper to use DTYPE_DCS_WRITE. If the commands have one parameter, it is proper to use DTYPE_DCS_WRITE1. If the commands have more than one parameter, it is proper to use DTYPE_DCS_LWRITE.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



LTPs sind Niedertemperatur-Polysilizium-Bildschirme und LCDs sind ein Zweig der Polysilizium-Technologie. Sie bestehen hauptsächlich aus Leuchtstoffröhren, Lichtleiterplatten und Filtern Es besteht aus Materialien wie Platten, Glassubstraten, Trägerfolien und Flüssigkristallen. Die Anzeige erfolgt durch die Steuerung der Hintergrundbeleuchtung durch Flüssigkristallmoleküle. Es besteht hauptsächlich aus einem LCD-Panel und einem Hintergrundbeleuchtungsmodul und Platine.

Ich bin neu im Springboot-Projekt. (1) Ich fand das Breakpoint-Debugging sehr deprimiert und suchte online nach Lösungen. Alles, was ich sah, waren einige sehr komplizierte Lösungen, die angeblich Remote-Debugging waren, aber auch zusätzliche Eröffnungsslogans erforderten. Das unterscheidet sich von einem herkömmlichen Projekt, daher halte ich es nicht für notwendig. Nach einiger Erkundung habe ich herausgefunden, dass es einen einfacheren Weg gibt. Die Schritte sind wie folgt: Fügen Sie eine Konfiguration im Plugin-Teil der POM-Datei hinzu: false und es wird in Ordnung sein (2) Bezüglich des im SpringBoot-Projekt gemeldeten Fehlers dass die Datei „web.xml“ fehlt, da für herkömmliche Webprojekte web.xml-Dateien erforderlich sind, für SpringBoot-Projekte jedoch keine web.xml-Dateien.

Die Iteration der Bildschirmtechnologie ist für Mobiltelefonhersteller der Kernweg zum „Ausrollen“. Der aktuelle OLED-Bildschirm hat ein sehr gutes Niveau in Bezug auf Helligkeit, Stromverbrauch, Farbe und Augenschutz erreicht. Doch auch wenn die OLED-Technologie immer ausgereifter wird, entscheiden sich immer noch viele Benutzer für Mobiltelefone, die mit LCD-Bildschirmen ausgestattet sind. Der Grund dafür ist möglicherweise größtenteils auf die einzigartigen Vorteile von LCD-Bildschirmen beim Augenschutz zurückzuführen. Warum ist LCD augenfreundlicher? Um anschaulich zu erklären, warum viele „LCD“-Menschen beim Anblick von OLED-Bildschirmen wunde Augen haben und Tränen vergießen, müssen wir kurz auf das Prinzip der Bildschirmdarstellung eingehen. Wir können das auf dem Bildschirm angezeigte Bild einfach als ein aus unzähligen Pixeln zusammengesetztes Muster verstehen

Laut Nachrichten vom 27. Juni und dem neuesten Bericht der Forschungsorganisation Omdia übertrafen im ersten Quartal 2024 die weltweiten Lieferungen von organischen Leuchtdioden (OLED) für Smartphones erstmals die von Flüssigkristallbildschirmen (LCD). Geschichte. Der Bericht zeigt, dass die jährlichen Auslieferungen von Smartphone-Displays im Jahr 2023 1,45 Milliarden Einheiten erreichen werden, was einem Anstieg von 5 % gegenüber dem Vorjahr entspricht. Bis zum ersten Halbjahr 2024 werden die Auslieferungen voraussichtlich 715 Millionen Einheiten erreichen, was einem Anstieg gegenüber dem Vorjahr entspricht von 9 %. Unter anderem stiegen die Auslieferungen von AMOLED-Bildschirmen (Active Matrix Organic Light Emitting Diode) im ersten Quartal 2024 auf 182 Millionen Einheiten, was einem Anstieg von 39 % gegenüber dem Vorjahr entspricht. Im Gegensatz dazu stiegen die Auslieferungen von Dünnschichttransistor-Flüssigkristallanzeigen (TFTLCD). Die Lieferungen gingen auf 1,72 Milliarden Stück zurück, 10 % weniger als im Vorjahr. Om

Kürzlich hat ein Tablet-Computer „iPA2475“ von vivo die 3C-Qualitätszertifizierung des Landes erfolgreich bestanden und wird voraussichtlich den Namen iQOO Pad2 tragen. Doch in der jüngsten Enthüllungsrunde scheint die Situation eine neue Wendung genommen zu haben. Am 2. April bemerkte CNMO, dass ein digitaler Blogger enthüllte, dass das Flaggschiff-Tablet von iQOO Pad2 Pro und nicht das ursprüngliche iQOO Pad2 heißen wird. Der Blogger verriet außerdem, dass das iQOO Pad 2 Pro bald erscheinen wird. Basierend auf der Analyse des Bloggers wird das iQOO Pad2 Pro mit dem leistungsstarken Dimensity 9300-Prozessor ausgestattet sein, um Benutzern ein hervorragendes Leistungserlebnis zu bieten. Gleichzeitig wird es auch mit einer 3,1K-Auflösung, einer Bildwiederholfrequenz von 144 Hz und einem 13-Zoll-LCD-Großbildschirm ausgestattet sein, unabhängig davon, ob Sie zuschauen

Laut Nachrichten vom 6. Februar gab der Blogger Digital Chat Station bekannt, dass die nächsten Mobiltelefone der Snapdragon 8-Serie und der Snapdragon 7-Serie über OLED-Bildschirme verfügen werden und die LCD-Bildschirmmodelle mit der Plattform der Snapdragon 6-Serie ausgestattet sein werden Telefone jetzt nichts. Letztes Jahr haben sowohl iQOO als auch Redmi leistungsstarke Mobiltelefone mit LCD-Bildschirm auf den Markt gebracht, nämlich iQOO Z8 bzw. Redmi Note 12T Pro. Die neuesten Nachrichten zeigen, dass iQOO Z9 keinen LCD-Bildschirm mehr verwendet, sondern auf einen 1,5-KOLED-Bildschirm umgestiegen ist. Wie wir alle wissen, liegt der Hauptgrund, warum LCD-Benutzer LCD lieben, darin, dass der LCD-Bildschirm ein globales Gleichstrom-Dimmschema verwendet, das kein Flimmern verursacht und für die Langzeitbetrachtung vergleichsweise komfortabler ist. Doch nach Jahren der iterativen Entwicklung hat OLED nun seine eigenen Mängel überwunden

Im Smartphone-Markt dominierten in den vergangenen Jahren LCD-Displays den Markt. Das liegt möglicherweise daran, dass LCD-Panels günstiger und einfacher zu bedienen sind. Mit dem Streben der Hersteller nach Innovation und der Weiterentwicklung der Technologie stellen die Kosten für AMOLED-Panels für die Hersteller jedoch kein Problem mehr dar. Denn auch wenn die Kosten höher sind, können AMOLED-Panels den Herstellern dennoch einen weiteren Mehrwert bringen. In einem Umfragebericht aus dem Jahr 2019 wurde erwähnt, dass die weltweiten Lieferungen großer LCD-Panels von 2020 bis 2024 mit einer negativen durchschnittlichen jährlichen Wachstumsrate von 0,8 % zurückgehen könnten. Dieser Rückgang ist auf die gesättigte Nachfrage nach Monitoren, Tablets, Laptops und Monitoren ab 9 Zoll zurückzuführen. Bis 2024 werden die Auslieferungen von kleinen und mittelgroßen LCD-Panels 1 erreichen

Erinnern Sie sich an das neue iPad Pro, das vor ein paar Tagen veröffentlicht wurde? Eines der größten Upgrades ist der Wechsel vom LCD-Panel (MiniLED-Hintergrundbeleuchtung) zu OLED. Erst heute hat Xiao Lei auch eine Neuigkeit gesehen, nämlich die Nachrichtenagentur Yonhap, dass LG Display den Verkauf seiner letzten LCD-Panel-Fabrik beschleunigt: die Ankündigung einer vollständigen Umstellung auf OLED. Als Display-Technologie der dritten Generation hat der Trend, dass OLED LCD ersetzt, tatsächlich schon vor langer Zeit begonnen. Einige Leute haben behauptet, dass OLED LCD ersetzen und zum absoluten Mainstream werden wird. Am besten spiegelt sich jedoch die Vergänglichkeit der LCD- und OLED-Technologie auf der ganzen Welt wider, wenn wir auf die Mobiltelefone zurückblicken, die wir am häufigsten verwenden. Ab 2017 waren die Flaggschiff-Telefone des iPhoneX schnell serienmäßig mit OLED-Bildschirmen ausgestattet.
