On Thu, Sep 07, 2023 at 07:11:40AM +0200, Anton Lindqvist wrote: > On Wed, Sep 06, 2023 at 05:42:37AM -0600, Robert Nagy wrote: > > CVSROOT: /cvs > > Module name: xenocara > > Changes by: rob...@cvs.openbsd.org 2023/09/06 05:42:37 > > > > Modified files: > > driver/xf86-video-amdgpu/src: amdgpu_present.c drmmode_display.h > > xserver/glamor : glamor.h glamor_egl.c > > > > Log message: > > unbreak build with clang-16 by fixing up function definitions to match > > > > our uint64_t is an unsinged long long, but CARD64 is defined as unsigned > > long > > so the function pointer types in both glamor and xf86-video-amdgpu were > > mismatched and clang-16 treats that as an error > > > > ok matthieu@ > > This broke the tree. Here's a potential fix.
Hmm no, this one reverts parts of the llvm 16 diffs. What about this that gets rid of CARD64 completely in this context ? hint for the X developpers: CARD64 and friends are normally reserved for the X protocol specification and implementation All other uses as cheap substites for uint64_t or similar are just historical artefacts from an era where there was no standard integer types with known fixed lengths. Index: src/drmmode_display.c =================================================================== RCS file: /local/cvs/xenocara/driver/xf86-video-amdgpu/src/drmmode_display.c,v retrieving revision 1.4 diff -u -p -u -r1.4 drmmode_display.c --- src/drmmode_display.c 5 Dec 2022 16:41:17 -0000 1.4 +++ src/drmmode_display.c 7 Sep 2023 15:20:36 -0000 @@ -197,7 +197,7 @@ drmmode_wait_vblank(xf86CrtcPtr crtc, dr * version and DRM kernel module configuration, the vblank * timestamp can either be in real time or monotonic time */ -int drmmode_get_current_ust(int drm_fd, CARD64 * ust) +int drmmode_get_current_ust(int drm_fd, uint64_t * ust) { uint64_t cap_value; int ret; @@ -211,14 +211,14 @@ int drmmode_get_current_ust(int drm_fd, ret = clock_gettime(CLOCK_MONOTONIC, &now); if (ret) return ret; - *ust = ((CARD64) now.tv_sec * 1000000) + ((CARD64) now.tv_nsec / 1000); + *ust = ((uint64_t) now.tv_sec * 1000000) + ((uint64_t) now.tv_nsec / 1000); return 0; } /* * Get current frame count and frame count timestamp of the crtc. */ -int drmmode_crtc_get_ust_msc(xf86CrtcPtr crtc, CARD64 *ust, CARD64 *msc) +int drmmode_crtc_get_ust_msc(xf86CrtcPtr crtc, uint64_t *ust, uint64_t *msc) { ScrnInfoPtr scrn = crtc->scrn; uint32_t seq; @@ -303,7 +303,7 @@ drmmode_do_crtc_dpms(xf86CrtcPtr crtc, i drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private; ScrnInfoPtr scrn = crtc->scrn; AMDGPUEntPtr pAMDGPUEnt = AMDGPUEntPriv(scrn); - CARD64 ust; + uint64_t ust; int ret; if (drmmode_crtc->dpms_mode == DPMSModeOn && mode != DPMSModeOn) { @@ -321,7 +321,7 @@ drmmode_do_crtc_dpms(xf86CrtcPtr crtc, i "%s cannot get last vblank counter\n", __func__); else { - CARD64 nominal_frame_rate, pix_in_frame; + uint64_t nominal_frame_rate, pix_in_frame; drmmode_crtc->dpms_last_ust = ust; drmmode_crtc->dpms_last_seq = seq; @@ -347,7 +347,7 @@ drmmode_do_crtc_dpms(xf86CrtcPtr crtc, i xf86DrvMsg(scrn->scrnIndex, X_ERROR, "%s cannot get current time\n", __func__); else if (drmmode_crtc->dpms_last_ust) { - CARD64 time_elapsed, delta_seq; + uint64_t time_elapsed, delta_seq; time_elapsed = ust - drmmode_crtc->dpms_last_ust; delta_seq = time_elapsed * drmmode_crtc->dpms_last_fps; delta_seq /= 1000000; Index: src/drmmode_display.h =================================================================== RCS file: /local/cvs/xenocara/driver/xf86-video-amdgpu/src/drmmode_display.h,v retrieving revision 1.5 diff -u -p -u -r1.5 drmmode_display.h --- src/drmmode_display.h 6 Sep 2023 11:42:37 -0000 1.5 +++ src/drmmode_display.h 7 Sep 2023 15:20:36 -0000 @@ -127,7 +127,7 @@ typedef struct { PixmapPtr prime_scanout_pixmap; int dpms_mode; - CARD64 dpms_last_ust; + uint64_t dpms_last_ust; uint32_t dpms_last_seq; int dpms_last_fps; uint32_t interpolated_vblanks; @@ -285,7 +285,7 @@ Bool amdgpu_do_pageflip(ScrnInfoPtr scrn enum drmmode_flip_sync flip_sync, uint32_t target_msc); int drmmode_crtc_get_ust_msc(xf86CrtcPtr crtc, uint64_t *ust, uint64_t *msc); -int drmmode_get_current_ust(int drm_fd, CARD64 * ust); +int drmmode_get_current_ust(int drm_fd, uint64_t * ust); void drmmode_crtc_set_vrr(xf86CrtcPtr crtc, Bool enabled); Bool drmmode_wait_vblank(xf86CrtcPtr crtc, drmVBlankSeqType type, -- Matthieu Herrb