V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 15.0 (Mastodon). Forgejo je fork Gitei.
Současně se SUSECON 2026 proběhne příští čtvrtek v Praze také komunitní Open Developer Summit (ODS) zaměřený na open source a openSUSE. Akce se koná ve čtvrtek 23. 4. (poslední den SUSECONu) v Hilton Prague (místnost Berlin 3) a je zcela zdarma, bez nutnosti registrace na SUSECON. Na programu jsou témata jako automatizace (AutoYaST), DevOps, AI v terminálu, bezpečnost, RISC-V nebo image-based systémy. Všichni jste srdečně zváni.
Český úřad zeměměřický a katastrální zavedl u anonymního nahlížení do katastru nemovitostí novou CAPTCHA ve formě mapové puzzle: nepřihlášení uživatelé musí nově správně otočit devět dlaždic v 3x3 poli tak, aby dohromady daly souvislý obrázek výseče reálné mapy, přičemž na to mají pouze jeden časově omezený pokus. Test je podle uživatelů i odborníků příliš obtížný a na sociálních sítích pochopitelně schytává zaslouženou kritiku a
… více »Byla vydána verze 1.95.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Mozilla prostřednictvím své dceřiné společnosti MZLA Technologies Corporation představila open-source AI klienta Thunderbolt. Primárně je určený pro firemní nasazení.
Firma Cal.com oznámila, že přesouvá svůj produkční kód z otevřeného do uzavřeného repozitáře z důvodu bezpečnostního rizika umělé inteligence, která prý dokáže vyhledávat a zneužívat zranitelnosti rychleji, než by je jejich vývojářský tým stíhal opravovat. Zároveň zveřejnila samostatnou, open-source verzi Cal.diy pod licencí MIT, ovšem bez řady původních funkcí. O tom, zda je toto opatření rozumné, existují pochyby. … více »
Vývojáři KDE na Mastodonu oznámili vydání balíku aplikací KDE Gear 26.04. Přehled novinek i s náhledy a videi v oficiálním oznámení.
Kryptografická knihovna OpenSSL byla vydána v nové verzi 4.0. Přehled změn v souboru CHANGES.md na GitHubu. Odstraněna byla podpora SSLv2 Client Hello a SSLv3. Ve výchozím nastavení byla zakázána podpora odmítnutých eliptických křivek v TLS dle RFC 8422. Přibyla například podpora Encrypted Client Hello (ECH, RFC 9849).
curl up 2026, tj. setkání vývojářů a uživatelů curlu, proběhne opět v Praze. O víkendu 23. a 24. května v Pracovně.
Aplikace pro ověřování věku uživatelů on-line platforem je technicky hotová a brzy bude k dispozici pro občany EU, oznámila dnes předsedkyně Evropské komise Ursula von der Leyenová. Půjde podle ní o bezplatné a snadno použitelné řešení, které pomůže chránit děti před škodlivým a nelegálním obsahem. Aplikace bude podle ní fungovat na jakémkoli zařízení a bude zcela anonymní.
Linux buildroot 3.4.75 #4 PREEMPT Sun Feb 9 00:00:40 CET 2014 armv7l GNU/Linux.
Ovládač UMP vypisuje pri insmode:
Inserting UMP device driver. Compiled: Feb 8 2014, time: 20:18:21 Using OS memory backend, allocation limit: 134217728 UMP device driver 0000 loadedMali má nasledujúci výpis:
Inserting Mali v20 device driver. Compiled: Feb 8 2014, time: 20:19:24. Driver revision: r3p2-01rel1 mali_module_init() registering device mali: use config clk_div 2 mali clock set completed, clock is 180000000 Hz mali_module_init() registering driver mali_probe(): Called for platform device mali-utgard Memory system initializing Using device defined memory settings (dedicated: 0x00000000@0x00000000, shared: 0x10000000) Mali OS memory allocator created with max allocation size of 0x10000000 bytes, cpu_usage_adjust 0x00000000 Using device defined frame buffer settings (0x02000000@0x5A000000) Memory Validator installed for Mali physical address base=0x5A000000, size=0x02000000 Mali PMU: Creating Mali PMU core Mali PP: Creating Mali PP core: Mali_PP0 Mali PP: Base address of PP core: 0x1c48000 Found Mali GPU Mali-400 MP r1p1 Mali L2 cache: Creating Mali L2 cache: Mali_L2 Mali MMU: Creating Mali MMU: Mali_GP_MMU Mali GP: Creating Mali GP core: Mali_GP Mali MMU: Creating Mali MMU: Mali_PP0_MMU Mali PP: Creating Mali PP core: Mali_PP0 Mali PP: Base address of PP core: 0x1c48000 1+0 PP cores initialized Mali GPU Utilization: No utilization handler installed mali_probe(): Successfully initialized driver for platform device mali-utgard Mali device driver loadedVýstup testovacieho dodávaného s ovládačmi je:
EGL Version: "1.4 Linux-r3p2-01rel2" EGL Vendor: "ARM" EGL Extensions: "EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_reusable_sync EGL_KHR_fence_sync EGL_KHR_lock_surface EGL_KHR_lock_surface2 EGL_EXT_create_context_robustness " Surface size: 800x480 GL Vendor: "ARM" GL Renderer: "Mali-400 MP" GL Version: "OpenGL ES 2.0" GL Extensions: "GL_OES_texture_npot GL_OES_compressed_ETC1_RGB8_texture GL_OES_standard_derivatives GL_OES_EGL_image GL_OES_depth24 GL_ARM_rgba8 GL_ARM_mali_shader_binary GL_OES_depth_texture GL_OES_packed_depth_stencil GL_EXT_texture_format_BGRA8888 GL_EXT_blend_minmax GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_rgb8_rgba8 GL_EXT_multisampled_render_to_texture GL_EXT_discard_framebuffer GL_OES_get_program_binary GL_ARM_mali_program_binary GL_EXT_shader_texture_lod GL_EXT_robustness GL_OES_depth_texture_cube_map "Veľkosť LCD je 800x480, veľkosť framebufferu je nastavená na 800x1440 (tj. teoreticky je možný triple buffering).
mode "800x480-60"
# D: 33.000 MHz, H: 31.280 kHz, V: 59.580 Hz
geometry 800 480 800 1440 32
timings 30303 16 209 22 22 30 1
rgba 8/16,8/8,8/0,8/24
endmode
Pre testovanie tearingu zobrazujem pohybujúci sa trojuholník (video).
Po každom vykresľovaní program čaká na vsync, synchronizáciu zabezpečuje tento kód (je použitý v mnohých zdrojákoch, nie je to môj výmysel):
if (ioctl(framebuffer, FBIO_WAITFORVSYNC, 0) == -1) {
printf("FBIO_WAITFORVSYNC ERR");
}
eglSwapBuffers(egl_display, egl_surface);
Presne tento kód spôsobuje dosť silný tearing: video (zubaté hrany).
Signál vsync je správne zapojený a funguje, problém je vo funkcii eglSwapBuffers, ktorá trvá pomerne dlho (5 - 20ms) pretože namiesto prepnutia front / back bufferu vykonáva aj samotné renderovanie.
Teoreticky sa dá tearing odstrániť vložením glFinish za vykresľovaním, takže eglSwapBuffers bude vykonaná dostatočne rýchlo. To však zníži fps u extrémne jednoduchých scén na 30fps (z pôvodných asi 1000fps) a u zložitejších scén z 60fps na 10fps.
Vynechať pomalú synchronizáciu s CPU je zvyčajne možné použitím triple bufferingu, ale nikde som nenašiel nejaký príklad ako sa triple buffering aktivuje. Pôvodne som si myslel, že sa môže zapnúť nastavením eglSwapInterval (nepíše sa to v dokumentácii explicitne, ale vyzerá to na nastavenie počtu predrenderovaných bufferov). Volanie eglSwapInterval nemá však na aplikáciu žiaden vplyv. Nastavenie pomocou EGL_MIN_SWAP_INTERVAL / EGL_MAX_SWAP_INTERVAL tak isto nefunguje (akákoľvek hodnota spôsobí chybu inicializácie EGL kdesi v blobe, neviem zisiť prečo).
Máte niekto nápad ako redukovať tearing bez výrazneho zníženia fps?
Tiskni
Sdílej: