Skip to content
Snippets Groups Projects

include: Document some vkd3d.h structures.

Merged Giovanni Mascellani requested to merge giomasce/vkd3d:aso into master
1 unresolved thread

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Giovanni Mascellani approved this merge request

    approved this merge request

    • +    /** The pointer to a function to signal events. */
           PFN_vkd3d_signal_event pfn_signal_event;
      +    /** The pointer to a function to create threads. */
           PFN_vkd3d_create_thread pfn_create_thread;
      +    /** The pointer to a function to join threads. */
           PFN_vkd3d_join_thread pfn_join_thread;
      +    /** The size of type WCHAR. */
           size_t wchar_size;

      This should probably say "Optional pointer ..." or "An optional pointer ..." like we use in most other places. In general these could do with some elaboration; e.g., if NULL/unspecified, vkd3d will use an appropriate function of its choice. In principle that's CreateThread() etc. on Win32 and pthread_create() etc. everywhere else, although that should probably not be relied on. Valid values for wchar_size are "4" (traditional Unix) and "2" (Windows). In principle this should be set to "sizeof(WCHAR)". Ties into the VKD3D_WIN32_WCHAR define.

      -    /* 1.3 */
      +    /**
      +     * The structure is a vkd3d_host_time_domain_info structure.
      +     * \since 1.2
      +     */
           VKD3D_STRUCTURE_TYPE_HOST_TIME_DOMAIN_INFO,

      1.3 was correct.

      +    /** A list of optional Vulkan instance extensions to request. */
           const char * const *extensions;

      In particular, "optional" here means that vkd3d instance creation won't fail if those extensions aren't available, as opposed to the extensions from struct vkd3d_instance_create_info.

      +    /**
      +     * The application's name, to be passed to the Vulkan driver. If it is NULL, a name is
      +     * computed from the process executable filename. If that cannot be done, the empty string is
      +     * used.
      +     */
           const char *application_name;
      +    /** The application's version, to be passed to the Vulkan driver. */
           uint32_t application_version;

      Technically these are passed to the loader/runtime, or "the Vulkan implementation" if you like.

      +    /**
      +     * The number of clock ticks per second, used for GetClockCalibration(). If this chained
      +     * structure is not used then the standard Windows value (10 millions) is used, which means that
      +     * each tick is a tenth of microseconds, or equivalently 100 nanoseconds.
      +     */

      I don't think that's a standard Windows value. In any case, the value for this should be consistent with QueryPerformanceFrequency(). Note also that in principle this is ignored on Windows platforms, as we should be getting VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR there.

    • In particular, "optional" here means that vkd3d instance creation won't fail if those extensions aren't available, as opposed to the extensions from struct vkd3d_instance_create_info.

      Does the client have a way to know which extensions were indeed enabled? Possibly in a way which is easier than just enumerating all of them again and doing the selection algorithm on their own.

      Our interface is still unsatisfying in a number of cases (for example when beside enabling extensions you should also enable features), but that's another matter.

    • Please register or sign in to reply
  • added 5 commits

    • 76ff81cd - include: Document struct vkd3d_instance_create_info.
    • 6d4a6972 - include: Document struct vkd3d_structure_type.
    • 1b42d928 - include: Document struct vkd3d_optional_instance_extensions_info.
    • 14ea032d - include: Document structure vkd3d_application_info.
    • c356769c - include: Document structure vkd3d_host_time_domain_info.

    Compare with previous version

  • In particular, "optional" here means that vkd3d instance creation won't fail if those extensions aren't available, as opposed to the extensions from struct vkd3d_instance_create_info.

    Does the client have a way to know which extensions were indeed enabled? Possibly in a way which is easier than just enumerating all of them again and doing the selection algorithm on their own.

    Not one provided by libvkd3d, at least.

    Our interface is still unsatisfying in a number of cases (for example when beside enabling extensions you should also enable features), but that's another matter.

    Yeah. I think at the time the API was designed we decided it was hard to get right, and to revisit it as the need arises, possibly by introducing vkd3d_create_instance2()/vkd3d_create_device2() if need be.

  • Henri Verbeet approved this merge request

    approved this merge request

  • added 19 commits

    • c356769c...9241e1bc - 14 commits from branch wine:master
    • 995a316f - include: Document struct vkd3d_instance_create_info.
    • a1ebb392 - include: Document struct vkd3d_structure_type.
    • d27bbce0 - include: Document struct vkd3d_optional_instance_extensions_info.
    • d2d4ed9f - include: Document structure vkd3d_application_info.
    • 7fbd753c - include: Document structure vkd3d_host_time_domain_info.

    Compare with previous version

  • Alexandre Julliard approved this merge request

    approved this merge request

Please register or sign in to reply
Loading