---
title: VkSemaphore interface
---
classDiagram
    VkSemaphore ()-- vk_semaphore
    vk_object_base <|-- vk_semaphore
    vk_semaphore <|.. vk_sync
    vk_sync -- vk_sync_type
    link vk_semaphore "https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/src/vulkan/runtime/vk_semaphore.h" "vk_semaphore"
    link vk_sync "https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/src/vulkan/runtime/vk_sync.h" "vk_sync"
    link vk_sync_type "https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/src/vulkan/runtime/vk_sync.h" "vk_sync_type"
    class vk_object_base{
        VK_LOADER_DATA _loader_data
        VkObjectType type
        bool client_visible
        vk_device *device
        vk_instance *instance
        util_sparse_array private_data
        char *object_name
    }
    class vk_semaphore{
        VkSemaphoreType type
        vk_sync *temporary
        vk_sync permanent
    }
    class vk_sync{
        vk_sync_type *type
        vk_sync_flags flags
    }
    class vk_sync_type{
        size_t size
        vk_sync_features features
        init() VkResult
        finish() void
        signal() VkResult
        get_value() VkResult
        reset() VkResult
        move() VkResult
        wait() VkResult
        wait_many() VkResult
        import_opaque_fd() VkResult
        export_opaque_fd() VkResult
        import_sync_file() VkResult
        export_sync_file() VkResult
        import_win32_handle() VkResult
        export_win32_handle() VkResult
        set_win32_export_params() VkResult
    }
    <<interface>> vk_sync_type
Read more »

Segfault ?

下面的程序会段错误吗?

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>

struct foo {
long a;
};

int main(int argc, char *argv[])
{
struct foo *f = NULL;

printf("0x%016lx\n", &f->a);
}
Read more »

Introduction

driconf 是一个基于 XML 的 DRI 驱动配置机制,它同时提供系统范围的和每用户的配置方式 (如果同时存在,后者覆盖前者)。driconf 提供统一的配置格式,并整理出驱动常见的配置选项,方便易用。 driconf 不仅可以针对指定设备,指定 screen, 指定驱动设置选项,而且可以针对每个应用设置选项。

Read more »

XCB 是应用与 X 服务器交互使用的 C 绑定函数集,它里面的一些 C 函数是通过 python3-xcbgen 工具生成的,不经过编译在它的源码库是找不到的。而且 XCB 古老到仍然使用 autotools 那套构建系统,想要看到某些函数的“真容”,你还得“千呼万唤”。

Read more »

Vulkan 是一个低开销、跨平台的二维和三维图形与计算的应用程序接口,由 Khronos 在2015年在 GDC 上首次发布。它旨在提供高效能和更均衡的 CPU 和 GPU 占用,类似于 Direct3D 12 和 AMD Mantle。

本文主要记录一下在 llvmpipe 软渲染 Vulkan 驱动下, 一个 vulkan 应用程序 (demo) 的执行过程。

Read more »

Linux 计算加速器子系统旨在以通用的方式向用户空间开放计算加速器的接口。这些计算加速器可以是独立的 ASIC, 也可以是 SoC/GPU 内的 IP 块。通常计算加速器包括以下几种类型:

  • 边缘 AI - 在边缘设备上进行推理计算
  • 推理数据中心 - 大型服务器中的单用户/多用户设备
  • 训练数据中心 - 类似于推理数据中心卡,但通常具有更强的计算能力和更高的存储带宽
Read more »

高端硅片可以构建市场,但最终,软件支持往往决定了赢家和输家

– Jack Huynh, AMD 高级副总裁兼计算和图形业务集团总经理

AMD 的通用计算平台 ROCm (Radeon Open Compute) 是在通用计算领域与 NVIDIA 的 CUDA (Compute Unified Device Architecture) 相抗衡的软件基础设施。ROCm 实现的其实是由 AMD 发起的 HSA (Heterogeneous System Architecture) 标准,所以它的运行时主要由 3 个部分组成:

OOC: ROCm 平台又叫 Boltzmann 平台,原因据说是为了纪念统计力学和热力学领域著名物理学家路德维希·玻尔兹曼,他的工作对理解物质的微观行为和能量分布有着深远的影响。AMD 选取这个名字,可能是为了强调该平台在高性能计算领域的强大计算力和科学计算的应用前景。

Read more »
0%