The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск свободного офисного пакета LibreOffice 7.0, opennews (??), 05-Авг-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


113. "Выпуск свободного офисного пакета LibreOffice 7.0"  –1 +/
Сообщение от Аноним (197), 06-Авг-20, 01:52 
Вулкан == опенгл. Опенгл легаси, вулкан вктуальная итерация апи которая проще и легче. Но хуже работает и имеет кривой рантайм. Не то чтобы опенгл был не кривой, но всё же.
Ответить | Правка | Наверх | Cообщить модератору

174. "Выпуск свободного офисного пакета LibreOffice 7.0"  +1 +/
Сообщение от n00by (ok), 06-Авг-20, 09:06 
> Вулкан == опенгл. Опенгл легаси, вулкан вктуальная итерация апи которая проще и
> легче.

Вы сами то видели это "проще"? Скажу по секрету, надобно 300 строк, что бы нарисовать Чёрный Квадрат. 700 - треугольник в том квадрате (и это ещё придётся постараться, т.к. официальный тьюториал https://vulkan-tutorial.com/code/15_hello_triangle.cpp предлагает 900 на C++).

Ответить | Правка | Наверх | Cообщить модератору

177. "Выпуск свободного офисного пакета LibreOffice 7.0"  +/
Сообщение от Аноним (197), 06-Авг-20, 09:13 
У вулкана нет рантайма на 100 мегабайт.
Ответить | Правка | Наверх | Cообщить модератору

187. "Выпуск свободного офисного пакета LibreOffice 7.0"  +/
Сообщение от n00by (ok), 06-Авг-20, 10:02 
Вы не понимаете, чем отличается "проще" от "легче"? (впрочем, ссылку на "рантайм на 100 мегабайт" OGL просить нет смысла, её всё равно не будет).
Ответить | Правка | Наверх | Cообщить модератору

193. "Выпуск свободного офисного пакета LibreOffice 7.0"  +/
Сообщение от Аноним (197), 06-Авг-20, 10:36 
Проще устроено, потому что легче. А не проще использовать (хотя обмажься абстракциями и будет не сложнее). У нвидии есть такой рантайм, так конечно не один огл, но всё же около 20 мегабайт приходится именно на него.
Ответить | Правка | Наверх | Cообщить модератору

215. "Выпуск свободного офисного пакета LibreOffice 7.0"  +/
Сообщение от n00by (ok), 06-Авг-20, 11:12 
> Проще устроено, потому что легче. А не проще использовать

Люблю почитать такое. Особенно после, цитирую: "апи которая проще". Вот те 300 (или 900) строк - это "просто" вызовы "простого" интерфейса. Полезной работы там 0.

Ответить | Правка | Наверх | Cообщить модератору

223. "Выпуск свободного офисного пакета LibreOffice 7.0"  +/
Сообщение от Аноним (197), 06-Авг-20, 12:06 
Ассемблер тоже проще плюсов в миллион раз.
Ответить | Правка | Наверх | Cообщить модератору

235. "Выпуск свободного офисного пакета LibreOffice 7.0"  +/
Сообщение от Аноним (108), 06-Авг-20, 13:27 
> в миллион раз

Когда начал сравнивать, приводи метрику, по которой измеряешь простоту. Или ты, как обычно, peace-door-ball?

Ответить | Правка | Наверх | Cообщить модератору

242. "Выпуск свободного офисного пакета LibreOffice 7.0"  +/
Сообщение от n00by (ok), 06-Авг-20, 13:31 
Действительно, в асме нет 100500 функций и API на 1000 страниц, как в стандартной библиотеке C++ и Vulkan.
Ответить | Правка | К родителю #223 | Наверх | Cообщить модератору

336. "Выпуск свободного офисного пакета LibreOffice 7.0"  +/
Сообщение от Аноним (336), 07-Авг-20, 15:33 
А разве спеки CPU/GPU уже не больше 1к страниц?
Ответить | Правка | Наверх | Cообщить модератору

349. "Выпуск свободного офисного пакета LibreOffice 7.0"  +/
Сообщение от n00by (ok), 07-Авг-20, 17:03 
> А разве спеки CPU/GPU уже не больше 1к страниц?

Они такие давно. IA-32 Software Developer’s Manuals последнее бумажное издание (год примерно 2003-й) весит 4 кг. Новые версии в PDF значительно объёмнее. Спецификации редко когда нужны. Либо при написании ядра ОС (настройка таблицы страниц, прерываний и т.п.), либо для уточнения спорных моментов. Кто-то может почитать мануал по оптимизации (тот том как раз самый тонкий).

Что бы писать на асме, хватит книжки в 200-500 страниц, где всё разложено по полочкам, начиная с картинки байта из 8 бит и заканчивая пониманием более-менее принципов работы ЭВМ. Если с набором команд одного процессора разобраться, то для изучения нового может хватить таблицы команд, распечатанной на листе A4.

Если же сравнивать спеки, то стоит сравнивать спеки, а не учебники. Обратите внимание, быстро ли откроется ссылка https://www.khronos.org/registry/vulkan/specs/1.2-extensions...

Ответить | Правка | Наверх | Cообщить модератору

278. "Выпуск свободного офисного пакета LibreOffice 7.0"  +/
Сообщение от petrg (ok), 06-Авг-20, 16:46 
Посмотрите выступление Ричарда Хики "Simple made easy"
Вот например https://www.youtube.com/watch?v=oytL881p-nQ

Одна из первых вещей которые нужно обязательно посмотреть каждому кто софтом занимается.
Если TLDR, то важно различать "simple" - что то из простых слабо связанных компонентов
и "easy" - что то что не требует больших усилий.
Постое можно сделать удобным но не наоборот.

Ответить | Правка | К родителю #215 | Наверх | Cообщить модератору

289. "Выпуск свободного офисного пакета LibreOffice 7.0"  +/
Сообщение от n00by (ok), 06-Авг-20, 18:07 
Спасибо, лингвистическая лакунарность весьма интересная тема, если как следует разбираться в причинах и обстоятельствах её возникновения. В частности, у них security и safety это задачи разные, у нас и то и то -- безопасность, и отдельно есть сейф. Потому и подход в чем-то различается (у "всего мира" Encryption Standard, а у нас свои СКЗИ). Так же и с простотой.

P.S.
На всякий случай напомню, что в #177 "легче" противопоставляется "100 мегабайт", а в следующем сообщении стало "проще устроено, потому что легче". Насколько Vulkan на самом деле simple & easy видно по реакции независимого наблюдателя https://www.opennet.ru/openforum/vsluhforumID3/121495.html#254

Ответить | Правка | Наверх | Cообщить модератору

255. "Выпуск свободного офисного пакета LibreOffice 7.0"  +/
Сообщение от Аноним (108), 06-Авг-20, 13:58 
Приведи из примера выше номер строки, где рисуется треугольник...
Номер строки, сестра! (с)
Ответить | Правка | К родителю #193 | Наверх | Cообщить модератору

263. "Выпуск свободного офисного пакета LibreOffice 7.0"  +/
Сообщение от n00by (ok), 06-Авг-20, 14:50 
Что бы долго не искали, вот код, запускающий шейдеры:

    void drawFrame() {
        vkWaitForFences(device, 1, &inFlightFences[currentFrame], VK_TRUE, UINT64_MAX);

        uint32_t imageIndex;
        vkAcquireNextImageKHR(device, swapChain, UINT64_MAX, imageAvailableSemaphores[currentFrame], VK_NULL_HANDLE, &imageIndex);

        if (imagesInFlight[imageIndex] != VK_NULL_HANDLE) {
            vkWaitForFences(device, 1, &imagesInFlight[imageIndex], VK_TRUE, UINT64_MAX);
        }
        imagesInFlight[imageIndex] = inFlightFences[currentFrame];

        VkSubmitInfo submitInfo{};
        submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;

        VkSemaphore waitSemaphores[] = {imageAvailableSemaphores[currentFrame]};
        VkPipelineStageFlags waitStages[] = {VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT};
        submitInfo.waitSemaphoreCount = 1;
        submitInfo.pWaitSemaphores = waitSemaphores;
        submitInfo.pWaitDstStageMask = waitStages;

        submitInfo.commandBufferCount = 1;
        submitInfo.pCommandBuffers = &commandBuffers[imageIndex];

        VkSemaphore signalSemaphores[] = {renderFinishedSemaphores[currentFrame]};
        submitInfo.signalSemaphoreCount = 1;
        submitInfo.pSignalSemaphores = signalSemaphores;

        vkResetFences(device, 1, &inFlightFences[currentFrame]);

        if (vkQueueSubmit(graphicsQueue, 1, &submitInfo, inFlightFences[currentFrame]) != VK_SUCCESS) {
            throw std::runtime_error("failed to submit draw command buffer!");
        }

        VkPresentInfoKHR presentInfo{};
        presentInfo.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR;

        presentInfo.waitSemaphoreCount = 1;
        presentInfo.pWaitSemaphores = signalSemaphores;

        VkSwapchainKHR swapChains[] = {swapChain};
        presentInfo.swapchainCount = 1;
        presentInfo.pSwapchains = swapChains;

        presentInfo.pImageIndices = &imageIndex;

        vkQueuePresentKHR(presentQueue, &presentInfo);

        currentFrame = (currentFrame + 1) % MAX_FRAMES_IN_FLIGHT;
    }


vkQueueSubmit() - рендерит
vkQueuePresentKHR() - отображает картинку
Ответить | Правка | Наверх | Cообщить модератору

285. "Выпуск свободного офисного пакета LibreOffice 7.0"  +/
Сообщение от Аноним (108), 06-Авг-20, 17:33 
Это всё конечно интересно (нет), но где тут наш треугольник?
Ответить | Правка | Наверх | Cообщить модератору

254. "Выпуск свободного офисного пакета LibreOffice 7.0"  +/
Сообщение от Аноним (108), 06-Авг-20, 13:55 
Твоюжмать... что они курили, когда сочиняли такое?! Там даже не найдёшь, где треугольник рисуется.
Ответить | Правка | К родителю #174 | Наверх | Cообщить модератору

261. "Выпуск свободного офисного пакета LibreOffice 7.0"  +2 +/
Сообщение от n00by (ok), 06-Авг-20, 14:45 
> Твоюжмать... что они курили, когда сочиняли такое?! Там даже не найдёшь, где
> треугольник рисуется.

А треугольник там и не рисуется.) Это всё лишь настройки поверхностей, стадий, конвейеров и прочих премудростей, что бы запустить на граф.процессоре шейдер 3-х вершин:


#version 450
#extension GL_ARB_separate_shader_objects : enable

layout(location = 0) out vec3 fragColor;

vec2 positions[3] = vec2[](
    vec2(0.0, -0.5),
    vec2(0.5, 0.5),
    vec2(-0.5, 0.5)
);

vec3 colors[3] = vec3[](
    vec3(1.0, 0.0, 0.0),
    vec3(0.0, 1.0, 0.0),
    vec3(0.0, 0.0, 1.0)
);

void main() {
    gl_Position = vec4(positions[gl_VertexIndex], 0.0, 1.0);
    fragColor = colors[gl_VertexIndex];
}

(+ ещё шейдер фрагментов)

И треугольник получается только на 142й странице тютора https://raw.githubusercontent.com/Overv/VulkanTutorial/maste...

Прочтя все 283 страницы читатель обнаруживает, что научился загружать относительно сложные сцены, но только в статике. Для динамики придётся весь этот код основательно перелопатить.

Ответить | Правка | Наверх | Cообщить модератору

286. "Выпуск свободного офисного пакета LibreOffice 7.0"  +1 +/
Сообщение от Аноним (108), 06-Авг-20, 17:36 
Спасибо тебе, добрый человек, что предупредил даже не заглядывать в вулкан.
Ответить | Правка | Наверх | Cообщить модератору

291. "Выпуск свободного офисного пакета LibreOffice 7.0"  +/
Сообщение от n00by (ok), 06-Авг-20, 18:29 
Почему не заглядывать? Если разобраться, дальше действительно должно быть просто. Создаём вершины, отправляем граф.процессору, оно там само рисуется, не надо рассчитывать каждый пиксель. Или думаете, раньше было как-то иначе? Не знаю как VGA, но на ZX-Spectrum приходилось генерировать машинный код, который бы и рисовал те самые простейшие линии -- для экономии на командах циклов и пересылках данных.
Ответить | Правка | Наверх | Cообщить модератору

304. "Выпуск свободного офисного пакета LibreOffice 7.0"  +/
Сообщение от Аноним (108), 06-Авг-20, 20:29 
в OGL кода на порядок меньше.
Ответить | Правка | Наверх | Cообщить модератору

329. "Выпуск свободного офисного пакета LibreOffice 7.0"  +/
Сообщение от n00by (ok), 07-Авг-20, 10:44 
С другой стороны, под эгидой "проще и быстрее" зачем-то повышают порог вхождения. Завтра OGL может устареть (просто перестанут поддерживать в драйверах для какого-нибудь нового массового граф.процессора).
Ответить | Правка | Наверх | Cообщить модератору

287. "Выпуск свободного офисного пакета LibreOffice 7.0"  –1 +/
Сообщение от Ordu (ok), 06-Авг-20, 17:42 
Добро пожаловать в мир современных бекендов для вывода графики. В OpenGL то же самое стало. То есть в OpenGL писанины вроде поменьше, но это потому, что OpenGL не решает ряда задач, оставляя их неоговоренными спецификацией, и поэтому они по-разному делаются на разных системах. Собственно именно поэтому туторы по opengl используют SDL или что-нибудь типа, чтобы не заниматься долгим общением с системой, создавая окошко и контекст для этого окошка, а свалить эту рутину на библиотечку упрощающую это.
Ответить | Правка | К родителю #254 | Наверх | Cообщить модератору

290. "Выпуск свободного офисного пакета LibreOffice 7.0"  +1 +/
Сообщение от n00by (ok), 06-Авг-20, 18:20 
Так это тутор тоже не создаёт окошко, а использует GLFW. :)

А вот ещё интересный код из новых технологий:


WL_EXPORT struct wl_egl_window *
wl_egl_window_create(struct wl_surface *surface,
             int width, int height)
{
    struct wl_egl_window *egl_window;

    if (width <= 0 || height <= 0)
        return NULL;

    egl_window = calloc(1, sizeof *egl_window);
    if (!egl_window)
        return NULL;

    /* Cast away the constness to set the version number.
     *
     * We want the const notation since it gives an explicit
     * feedback to the backend implementation, should it try to
     * change it.
     *
     * The latter in itself is not too surprising as these days APIs
     * tend to provide bidirectional version field.
     */
    intptr_t *version = (intptr_t *)&egl_window->version;
    *version = WL_EGL_WINDOW_VERSION;

    egl_window->surface = surface;

    egl_window->width  = width;
    egl_window->height = height;

    return egl_window;
}

https://github.com/wayland-project/wayland/blob/master/egl/w...

Боюсь его комментировать.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру