sylware / nyanmp (public) (License: AGPLv3) (since 2020-02-12) (hash sha1)
intended to become a collection of media players for gnu/linux based on ffmpeg, alsa, vulkan, x11, wayland, etc.
List of commits:
Subject Hash Author Date (UTC)
conservative handling of vulkan linear filtering 7736b342c3566ac3ffa7a83ff1c7985e5595265f Sylvain BERTRAND 2021-01-15 18:18:02
npv: spurious AND faulty image creation flag e7d0d4e9efa15781b323cd092989bc0b95331875 Sylvain BERTRAND 2021-01-15 02:01:16
npa: buffering 9b2ec327646a289dae3e4cbb31b4857bf612d7e2 Sylvain BERTRAND 2020-11-06 17:20:56
npa: tons of love 68a79110ca4a6f5bdb41ed90e421b6f46c1c1877 Sylvain BERTRAND 2020-11-06 15:20:13
npv: spurious unsigned 5b4e039ffd921438a37112f0b4108480366f4d6d Sylvain BERTRAND 2020-11-06 04:31:18
npv: backward discontinuity handling 0fc81a53996993992dd86a96a26afd2aab0ac366 Sylvain BERTRAND 2020-09-25 16:14:26
npv: more monotonic, more pts discontinuity 1ab37ad2a24ca8f9fbf6d51eac8f996bd2eefacf Sylvain BERTRAND 2020-09-25 01:34:41
npv: workaround a mesa bug (which leads to linux state corruption) 780e5bec0b90a9e931778cf68fec62a7c5241c13 Sylvain BERTRAND 2020-09-23 15:57:25
npv: fix filter time base handling, prepare discontinuity support 2b7347be805d17a2b6f06e276e897c51431b9c6c Sylvain BERTRAND 2020-09-22 17:38:46
npv: correct coarse sync of vulkan image acquisition a9b52940ff2d567dc6c26b28d86eab54f5876819 Sylvain BERTRAND 2020-09-20 22:00:32
npv: fix channel layout handling and a tad more 88f74f181a567d108874a936fe3d306d34cfefb7 Sylvain BERTRAND 2020-09-19 23:12:04
npv: dynamic audio filter configuration d8a0ff688ddb2abcde22c01a2ae52ea74e9f0f2f Sylvain BERTRAND 2020-09-19 20:54:04
npv:protection against tantrum of media audio 78589150b7c6f1f3cae49b4b4bc8b572c6d8e6b7 Sylvain BERTRAND 2020-09-18 15:26:17
npv/npa:finish to workaround null channel layout 314788563e01d7ffb364a1775ba68619ee3f6c5c Sylvain BERTRAND 2020-09-15 22:50:57
npv: handle empty channel layout 5b5794fc4d5300b671b684a2f41196f66bd1fc4a Sylvain BERTRAND 2020-09-15 22:11:07
npv: tidy mutex locking 1962092d9675f76604414086200e88f6c857346f Sylvain BERTRAND 2020-09-15 00:51:12
npv: less incorrect reprogramming of blits b319e79f4f1b79670f6eef754142cc65c891ad4b Sylvain BERTRAND 2020-09-12 15:14:27
npv:fix osd restoration 8c64f703eca6b8c54b4cb5c95231dd02aa394135 Sylvain BERTRAND 2020-08-29 20:36:12
npv:osd:solo compilation modulo a few warnings 7805bd8f34f913b1535cc81c5be2a3132bd7e0e5 Sylvain BERTRAND 2020-08-29 14:51:35
npv: cleanup and color component fix 44f294e1de96c7974740f1187ebdbe12204884ae Sylvain BERTRAND 2020-08-28 23:48:18
Commit 7736b342c3566ac3ffa7a83ff1c7985e5595265f - conservative handling of vulkan linear filtering
Author: Sylvain BERTRAND
Author date (UTC): 2021-01-15 18:18
Committer name: Sylvain BERTRAND
Committer date (UTC): 2021-01-15 18:18
Parent(s): e7d0d4e9efa15781b323cd092989bc0b95331875
Signer:
Signing key:
Signing status: N
Tree: da930d0310141873c9e188f1db4d2ce4a480d969
File Lines added Lines deleted
npv/ABBREVIATIONS 1 0
npv/nyanvk/consts.h 11 0
npv/nyanvk/syms_global.h 4 0
npv/nyanvk/types.h 10 0
npv/video/local/code.frag.c 9 1
npv/vk/api_usage.h 11 6
npv/vk/local/code.frag.c 33 14
npv/vk/namespace/main.c 4 2
npv/vk/namespace/public.h 2 0
npv/vk/public/state.frag.h 5 2
File npv/ABBREVIATIONS changed (mode: 100644) (index a59704c..c33cbe8)
... ... err : ERRor
35 35 fd : File Descriptor fd : File Descriptor
36 36 ff : FFmpeg ff : FFmpeg
37 37 filt(s) : FILTer(S) filt(s) : FILTer(S)
38 filt : FILTering
38 39 fmt : ForMaT fmt : ForMaT
39 40 fr(s) : FRame(S) fr(s) : FRame(S)
40 41 frag(s) : FRAGment(S) frag(s) : FRAGment(S)
File npv/nyanvk/consts.h changed (mode: 100644) (index b4363ad..0f45d4c)
... ... enum {
71 71 vk_struct_type_xcb_surf_create_info = 1000000000 + 5000 + 0, vk_struct_type_xcb_surf_create_info = 1000000000 + 5000 + 0,
72 72 /* extension number 60 or index 59, offset 1 */ /* extension number 60 or index 59, offset 1 */
73 73 vk_struct_type_phydev_props = 1000000000 + 59000 + 1, vk_struct_type_phydev_props = 1000000000 + 59000 + 1,
74 /* extension number 60 or index 59, offset 2 */
75 vk_struct_type_texel_mem_blk_fmt_props = 1000000000 + 59000 + 2,
74 76 /* extension number 60 or index 59, offset 5 */ /* extension number 60 or index 59, offset 5 */
75 77 vk_struct_type_q_fam_props = 1000000000 + 59000 + 5, vk_struct_type_q_fam_props = 1000000000 + 59000 + 5,
76 78 /* extension number 60 or index 59, offset 6 */ /* extension number 60 or index 59, offset 6 */
 
... ... enum {
296 298 vk_fence_create_signaled_bit = 0x00000001, vk_fence_create_signaled_bit = 0x00000001,
297 299 vk_fence_create_flag_bits_enum_max = 0x7fffffff vk_fence_create_flag_bits_enum_max = 0x7fffffff
298 300 }; };
301 enum {
302 vk_texel_mem_blk_fmt_feature_sampled_img_filt_linear_bit = 0x00001000,
303 vk_texel_mem_blk_fmt_feature_bits_enum_max = 0x7fffffff
304 };
305 enum {
306 vk_filt_nearest = 0,
307 vk_filt_linear = 1,
308 vk_filt_enum_max = 0x7fffffff
309 };
299 310 #endif #endif
File npv/nyanvk/syms_global.h changed (mode: 100644) (index b92590c..70f324b)
64 64 STATIC void (*dl_vk_get_phydev_mem_props)(\ STATIC void (*dl_vk_get_phydev_mem_props)(\
65 65 struct vk_phydev_t *phydev,\ struct vk_phydev_t *phydev,\
66 66 struct vk_phydev_mem_props_t *props);\ struct vk_phydev_mem_props_t *props);\
67 STATIC void (*dl_vk_get_phydev_texel_mem_blk_fmt_props)(\
68 struct vk_phydev_t *phydev,\
69 u32 fmt,\
70 struct vk_texel_mem_blk_fmt_props_t *props);\
67 71 STATIC s32 (*dl_vk_get_phydev_surf_caps)(\ STATIC s32 (*dl_vk_get_phydev_surf_caps)(\
68 72 struct vk_phydev_t *phydev,\ struct vk_phydev_t *phydev,\
69 73 struct vk_phydev_surf_info_t *info,\ struct vk_phydev_surf_info_t *info,\
File npv/nyanvk/types.h changed (mode: 100644) (index b264ce3..123e194)
... ... struct vk_phydev_mem_props_t {
207 207 void *next; void *next;
208 208 struct vk_phydev_mem_props_core_t core; struct vk_phydev_mem_props_core_t core;
209 209 }; };
210 struct vk_texel_mem_blk_fmt_props_core_t {
211 u32 linear_tiling_features;
212 u32 optimal_tiling_features;
213 u32 buffer_features;
214 };
215 struct vk_texel_mem_blk_fmt_props_t {
216 u32 type;
217 void *next;
218 struct vk_texel_mem_blk_fmt_props_core_t core;
219 };
210 220 struct vk_surf_caps_core_t { struct vk_surf_caps_core_t {
211 221 u32 imgs_n_min; u32 imgs_n_min;
212 222 u32 imgs_n_max; u32 imgs_n_max;
File npv/video/local/code.frag.c changed (mode: 100644) (index f8566ed..de9a584)
... ... STATIC void blit_setup(u8 swpchn_img)
501 501 struct vk_extent_2d_t *current; struct vk_extent_2d_t *current;
502 502 union vk_clr_color_val_t clr_color_val; union vk_clr_color_val_t clr_color_val;
503 503 struct vk_img_subrsrc_range_t range; struct vk_img_subrsrc_range_t range;
504 struct npv_vk_texel_mem_blk_fmt_t *b8g8r8a8_srgb;
505 u32 filt;
504 506
505 507 current = &npv_vk_surf_p.dev.phydev.surf_caps.core.current_extent; current = &npv_vk_surf_p.dev.phydev.surf_caps.core.current_extent;
506 508
 
... ... STATIC void blit_setup(u8 swpchn_img)
561 563 memcpy(&region.dst_offsets[1], &blit_l[swpchn_img].vp.bottom_right, memcpy(&region.dst_offsets[1], &blit_l[swpchn_img].vp.bottom_right,
562 564 sizeof(region.dst_offsets[1])); sizeof(region.dst_offsets[1]));
563 565 region.dst_offsets[1].z = 1; /* see vk specs */ region.dst_offsets[1].z = 1; /* see vk specs */
566 /* linear filtering */
567 b8g8r8a8_srgb = &npv_vk_surf_p.dev.phydev.b8g8r8a8_srgb;
568 if (b8g8r8a8_srgb->linear_tiling_has_linear_filt)
569 filt = vk_filt_linear;
570 else
571 filt = vk_filt_nearest;
564 572 vk_cmd_blit_img(npv_vk_surf_p.dev.cbs[swpchn_img], scaler_p.img.vk, vk_cmd_blit_img(npv_vk_surf_p.dev.cbs[swpchn_img], scaler_p.img.vk,
565 npv_vk_surf_p.dev.swpchn.imgs[swpchn_img], &region);
573 npv_vk_surf_p.dev.swpchn.imgs[swpchn_img], &region, filt);
566 574 /*--------------------------------------------------------------------*/ /*--------------------------------------------------------------------*/
567 575 vk_end_cb(npv_vk_surf_p.dev.cbs[swpchn_img]); vk_end_cb(npv_vk_surf_p.dev.cbs[swpchn_img]);
568 576 IF_FATALVVK("%d:swapchain img:%u:command buffer:%p:unable to end recording\n", r, swpchn_img, npv_vk_surf_p.dev.cbs[swpchn_img]); IF_FATALVVK("%d:swapchain img:%u:command buffer:%p:unable to end recording\n", r, swpchn_img, npv_vk_surf_p.dev.cbs[swpchn_img]);
File npv/vk/api_usage.h changed (mode: 100644) (index 5d59ce4..f2f1b61)
... ... r = npv_vk_surf_p.dev.dl_vk_acquire_next_img(npv_vk_surf_p.dev.vk, __VA_ARGS__)
78 78 #define vk_reset_cb(cb) \ #define vk_reset_cb(cb) \
79 79 r = npv_vk_surf_p.dev.dl_vk_reset_cb(cb, 0) r = npv_vk_surf_p.dev.dl_vk_reset_cb(cb, 0)
80 80
81 /* linear filtering if scaling happens */
82 /* TODO: should be tested prior to usage: fmt feature of src img should have the vk_fmt_feature_sampled_img_filt_linear_bit */
83 #define vk_cmd_blit_img(cb, src_img, dst_img, region) \
84 npv_vk_surf_p.dev.dl_vk_cmd_blit_img(cb, src_img, vk_img_layout_general, dst_img, vk_img_layout_present, 1, region, 1)
81 #define vk_cmd_blit_img(cb, src_img, dst_img, region, filter) \
82 npv_vk_surf_p.dev.dl_vk_cmd_blit_img(cb, src_img, vk_img_layout_general, dst_img, vk_img_layout_present, 1, region, filter)
85 83
86 84 #define vk_q_present(info) \ #define vk_q_present(info) \
87 85 r = npv_vk_surf_p.dev.dl_vk_q_present(npv_vk_surf_p.dev.q, info) r = npv_vk_surf_p.dev.dl_vk_q_present(npv_vk_surf_p.dev.q, info)
 
... ... r = npv_vk_surf_p.dev.dl_vk_get_fence_status(npv_vk_surf_p.dev.vk, npv_vk_surf_p
100 98 #define vk_reset_fences() \ #define vk_reset_fences() \
101 99 r = npv_vk_surf_p.dev.dl_vk_reset_fences(npv_vk_surf_p.dev.vk, 1, &npv_vk_surf_p.dev.fence) r = npv_vk_surf_p.dev.dl_vk_reset_fences(npv_vk_surf_p.dev.vk, 1, &npv_vk_surf_p.dev.fence)
102 100 /******************************************************************************/ /******************************************************************************/
103 /* cherry picked from nyanvk/syms_global.h */
101 /* cherry picked and namespaced from nyanvk/syms_global.h */
104 102 #define VK_GLOBAL_SYMS \ #define VK_GLOBAL_SYMS \
105 103 STATIC void *(*npv_dl_vk_get_instance_proc_addr)(\ STATIC void *(*npv_dl_vk_get_instance_proc_addr)(\
106 104 struct vk_instance_t *instance,\ struct vk_instance_t *instance,\
 
... ... r = npv_vk_surf_p.dev.dl_vk_reset_fences(npv_vk_surf_p.dev.vk, 1, &npv_vk_surf_p
171 169 struct vk_phydev_t *phydev, \ struct vk_phydev_t *phydev, \
172 170 struct vk_surf_t *surf, \ struct vk_surf_t *surf, \
173 171 u32 *modes_n, \ u32 *modes_n, \
174 u32 *modes);
172 u32 *modes); \
173 STATIC void (*npv_dl_vk_get_phydev_texel_mem_blk_fmt_props)(\
174 struct vk_phydev_t *phydev,\
175 u32 fmt,\
176 struct vk_texel_mem_blk_fmt_props_t *props);
175 177 /******************************************************************************/ /******************************************************************************/
176 178 #define vk_get_instance_proc_addr npv_dl_vk_get_instance_proc_addr #define vk_get_instance_proc_addr npv_dl_vk_get_instance_proc_addr
177 179
 
... ... r = npv_dl_vk_get_phydev_surf_texel_mem_blk_confs(npv_vk_surf_p.dev.phydev.vk, _
213 215
214 216 #define vk_get_phydev_mem_props npv_dl_vk_get_phydev_mem_props #define vk_get_phydev_mem_props npv_dl_vk_get_phydev_mem_props
215 217
218 #define vk_get_phydev_texel_mem_blk_fmt_props(...) \
219 npv_dl_vk_get_phydev_texel_mem_blk_fmt_props(npv_vk_surf_p.dev.phydev.vk, __VA_ARGS__)
220
216 221 #define vk_get_phydev_surf_caps(info, caps) \ #define vk_get_phydev_surf_caps(info, caps) \
217 222 r = npv_dl_vk_get_phydev_surf_caps(npv_vk_surf_p.dev.phydev.vk, info, caps) r = npv_dl_vk_get_phydev_surf_caps(npv_vk_surf_p.dev.phydev.vk, info, caps)
218 223
File npv/vk/local/code.frag.c changed (mode: 100644) (index 19afef6..ff2810d)
... ... STATIC void instance_syms(void)
42 42 INSTANCE_SYM(vkGetPhysicalDeviceSurfaceFormats2KHR, INSTANCE_SYM(vkGetPhysicalDeviceSurfaceFormats2KHR,
43 43 vk_get_phydev_surf_texel_mem_blk_confs); vk_get_phydev_surf_texel_mem_blk_confs);
44 44 INSTANCE_SYM(vkCreateXcbSurfaceKHR, vk_create_xcb_surf); INSTANCE_SYM(vkCreateXcbSurfaceKHR, vk_create_xcb_surf);
45 INSTANCE_SYM(vkGetPhysicalDeviceFormatProperties2,
46 vk_get_phydev_texel_mem_blk_fmt_props);
45 47 INSTANCE_SYM(vkGetPhysicalDeviceMemoryProperties2, INSTANCE_SYM(vkGetPhysicalDeviceMemoryProperties2,
46 48 vk_get_phydev_mem_props); vk_get_phydev_mem_props);
47 49 INSTANCE_SYM(vkGetPhysicalDeviceSurfaceCapabilities2KHR, INSTANCE_SYM(vkGetPhysicalDeviceSurfaceCapabilities2KHR,
 
... ... STATIC void texel_mem_blk_confs_dump(u32 confs_n,
605 607 ++i; ++i;
606 608 } }
607 609 } }
608 /*
609 * we only know this phydev/q is "able to present imgs" to the external
610 * pe surf. Here we choose the cfg of textel blk
611 */
612 610 #define CONFS_N_MAX 1024 #define CONFS_N_MAX 1024
613 STATIC void phydev_surf_texel_mem_blk_conf_select(void)
611 STATIC void phydev_surf_texel_mem_blk_fmts_dump(void)
614 612 { {
615 613 struct vk_phydev_surf_info_t info; struct vk_phydev_surf_info_t info;
616 614 struct vk_surf_texel_mem_blk_conf_t confs[CONFS_N_MAX]; struct vk_surf_texel_mem_blk_conf_t confs[CONFS_N_MAX];
617 struct vk_surf_texel_mem_blk_conf_core_t *cc;
618 615 s32 r; s32 r;
619 616 u32 confs_n; u32 confs_n;
620 617 u32 i; u32 i;
 
... ... STATIC void phydev_surf_texel_mem_blk_conf_select(void)
640 637 if (confs_n == 0) if (confs_n == 0)
641 638 fatal("physical device:%p:surface:%p:no valid surface texel memory block configuration\n", surf_p.dev.phydev.vk, surf_p.vk); fatal("physical device:%p:surface:%p:no valid surface texel memory block configuration\n", surf_p.dev.phydev.vk, surf_p.vk);
642 639 texel_mem_blk_confs_dump(confs_n, confs); texel_mem_blk_confs_dump(confs_n, confs);
643
644 cc = &surf_p.dev.phydev.selected_texel_mem_blk_conf_core;
640 }
641 #undef CONFS_N_MAX
642 STATIC void phydev_surf_b8g8r8a8_srgb_setup(void)
643 {
644 struct vk_surf_texel_mem_blk_conf_core_t *cc;
645 struct texel_mem_blk_fmt_t *fmt;
646 struct vk_texel_mem_blk_fmt_props_t b8g8r8a8_srgb_props;
645 647 /* /*
646 * the following texel cfg is guaranteed to exist, and this is what we
647 * get from ff scaler
648 * the b8g8r8a8_srgb texel cfg is guaranteed to exist, and this is what
649 * we get from ff scaler
648 650 */ */
651 fmt = &surf_p.dev.phydev.b8g8r8a8_srgb;
652 cc = &fmt->conf_core;
653
649 654 cc->fmt = vk_texel_mem_blk_fmt_b8g8r8a8_srgb; cc->fmt = vk_texel_mem_blk_fmt_b8g8r8a8_srgb;
650 655 pout("physical device:%p:surface:%p:using our surface texel memory block format %u\n", surf_p.dev.phydev.vk, surf_p.vk, cc->fmt); pout("physical device:%p:surface:%p:using our surface texel memory block format %u\n", surf_p.dev.phydev.vk, surf_p.vk, cc->fmt);
651 656 cc->color_space = vk_color_space_srgb_nonlinear; cc->color_space = vk_color_space_srgb_nonlinear;
652 657 pout("physical device:%p:surface:%p:using prefered surface texel memory block color space %u\n", surf_p.dev.phydev.vk, surf_p.vk, cc->color_space); pout("physical device:%p:surface:%p:using prefered surface texel memory block color space %u\n", surf_p.dev.phydev.vk, surf_p.vk, cc->color_space);
658 /*--------------------------------------------------------------------*/
659 /* do we have linear filt on b8g8r8a8 srgb linear tiling? */
660 memset(&b8g8r8a8_srgb_props, 0, sizeof(b8g8r8a8_srgb_props));
661 b8g8r8a8_srgb_props.type = vk_struct_type_texel_mem_blk_fmt_props;
662 vk_get_phydev_texel_mem_blk_fmt_props(
663 vk_texel_mem_blk_fmt_b8g8r8a8_srgb, &b8g8r8a8_srgb_props);
664 if (b8g8r8a8_srgb_props.core.linear_tiling_features &
665 vk_texel_mem_blk_fmt_feature_sampled_img_filt_linear_bit != 0) {
666 fmt->linear_tiling_has_linear_filt = true;
667 pout("physical device:%p:linear tiling of b8g8r8a8 sRGB texel memory blocks has linear filtering\n", surf_p.dev.phydev.vk);
668 } else {
669 fmt->linear_tiling_has_linear_filt = false;
670 pout("physical device:%p:linear tiling of b8g8r8a8 sRGB texel memory blocks does not have linear filtering\n", surf_p.dev.phydev.vk);
671 }
653 672 } }
654 #undef CONFS_N_MAX
655 673 STATIC void phydev_surf_caps_get(void) STATIC void phydev_surf_caps_get(void)
656 674 { {
657 675 s32 r; s32 r;
 
... ... STATIC void phydev_init(void)
736 754 tmp_phydevs_q_fams_surf_support_get(); tmp_phydevs_q_fams_surf_support_get();
737 755 tmp_phydev_and_q_fam_select(); tmp_phydev_and_q_fam_select();
738 756 /*--------------------------------------------------------------------*/ /*--------------------------------------------------------------------*/
739 phydev_surf_texel_mem_blk_conf_select();
757 phydev_surf_texel_mem_blk_fmts_dump();
758 phydev_surf_b8g8r8a8_srgb_setup();
740 759 /*--------------------------------------------------------------------*/ /*--------------------------------------------------------------------*/
741 760 phydev_surf_caps_get(); phydev_surf_caps_get();
742 761 phydev_surf_caps_dump(); phydev_surf_caps_dump();
 
... ... STATIC void swpchn_reinit(void)
842 861 info.type = vk_struct_type_swpchn_create_info; info.type = vk_struct_type_swpchn_create_info;
843 862 info.surf = surf_p.vk; info.surf = surf_p.vk;
844 863 info.imgs_n_min = surf_p.dev.phydev.surf_caps.core.imgs_n_min; info.imgs_n_min = surf_p.dev.phydev.surf_caps.core.imgs_n_min;
845 info.img_texel_mem_blk_fmt = p->selected_texel_mem_blk_conf_core.fmt;
846 info.img_color_space = p->selected_texel_mem_blk_conf_core.color_space;
864 info.img_texel_mem_blk_fmt = p->b8g8r8a8_srgb.conf_core.fmt;
865 info.img_color_space = p->b8g8r8a8_srgb.conf_core.color_space;
847 866 memcpy(&info.img_extent, memcpy(&info.img_extent,
848 867 &surf_p.dev.phydev.surf_caps.core.current_extent, &surf_p.dev.phydev.surf_caps.core.current_extent,
849 868 sizeof(info.img_extent)); sizeof(info.img_extent));
File npv/vk/namespace/main.c changed (mode: 100644) (index 47fd1e3..a24e51b)
19 19 #define phydev_init npv_vk_phydev_init #define phydev_init npv_vk_phydev_init
20 20 #define phydev_mem_type_dump npv_vk_phydev_mem_type_dump #define phydev_mem_type_dump npv_vk_phydev_mem_type_dump
21 21 #define phydev_mem_heap_dump npv_vk_phydev_mem_heap_dump #define phydev_mem_heap_dump npv_vk_phydev_mem_heap_dump
22 #define phydev_surf_b8g8r8a8_srgb_setup npv_vk_phydev_surf_b8g8r8a8_srgb_setup
22 23 #define phydev_surf_caps_dump npv_vk_phydev_surf_caps_dump #define phydev_surf_caps_dump npv_vk_phydev_surf_caps_dump
23 24 #define phydev_surf_caps_get npv_vk_phydev_surf_caps_get #define phydev_surf_caps_get npv_vk_phydev_surf_caps_get
24 #define phydev_surf_texel_mem_blk_conf_select npv_vk_phydev_surf_texel_mem_blk_conf_select
25 #define phydev_surf_texel_mem_blk_fmts_dump npv_vk_phydev_surf_texel_mem_blk_fmts_dump
25 26 #define pout npv_vk_pout #define pout npv_vk_pout
26 27 #define present_mode_to_str npv_vk_present_mode_to_str #define present_mode_to_str npv_vk_present_mode_to_str
27 28 #define q_get npv_vk_q_get #define q_get npv_vk_q_get
 
81 82 #undef phydev_init #undef phydev_init
82 83 #undef phydev_mem_type_dump #undef phydev_mem_type_dump
83 84 #undef phydev_mem_heap_dump #undef phydev_mem_heap_dump
85 #undef phydev_surf_b8g8r8a8_srgb_setup
84 86 #undef phydev_surf_caps_dump #undef phydev_surf_caps_dump
85 87 #undef phydev_surf_caps_get #undef phydev_surf_caps_get
86 #undef phydev_surf_texel_mem_blk_conf_select
88 #undef phydev_surf_texel_mem_blk_fmts_dump
87 89 #undef pout #undef pout
88 90 #undef present_mode_to_str #undef present_mode_to_str
89 91 #undef q_get #undef q_get
File npv/vk/namespace/public.h changed (mode: 100644) (index 1d2b6bd..37b14b6)
11 11 #define swpchn_update npv_vk_swpchn_update #define swpchn_update npv_vk_swpchn_update
12 12 #define swpchn_imgs_n_max npv_vk_swpchn_imgs_n_max #define swpchn_imgs_n_max npv_vk_swpchn_imgs_n_max
13 13 #define swpchn_t npv_vk_swpchn_t #define swpchn_t npv_vk_swpchn_t
14 #define texel_mem_blk_fmt_t npv_vk_texel_mem_blk_fmt_t
14 15 #define vfatal npv_vk_vfatal #define vfatal npv_vk_vfatal
15 16 #define vwarning npv_vk_vwarning #define vwarning npv_vk_vwarning
16 17 #define warning npv_vk_warning #define warning npv_vk_warning
 
28 29 #undef swpchn_update #undef swpchn_update
29 30 #undef swpchn_imgs_n_max #undef swpchn_imgs_n_max
30 31 #undef swpchn_t #undef swpchn_t
32 #undef texel_mem_blk_fmt_t
31 33 #undef vfatal #undef vfatal
32 34 #undef vwarning #undef vwarning
33 35 #undef warning #undef warning
File npv/vk/public/state.frag.h changed (mode: 100644) (index d8e7006..a67120c)
... ... struct swpchn_t {
7 7 u32 imgs_n; u32 imgs_n;
8 8 struct vk_img_t *imgs[swpchn_imgs_n_max]; struct vk_img_t *imgs[swpchn_imgs_n_max];
9 9 }; };
10 struct texel_mem_blk_fmt_t {
11 struct vk_surf_texel_mem_blk_conf_core_t conf_core;
12 bool linear_tiling_has_linear_filt;
13 };
10 14 struct phydev_t { struct phydev_t {
11 15 struct vk_phydev_t *vk; struct vk_phydev_t *vk;
12 16 u8 q_fam; u8 q_fam;
13 17 bool is_discret_gpu; bool is_discret_gpu;
14 struct vk_surf_texel_mem_blk_conf_core_t
15 selected_texel_mem_blk_conf_core;
18 struct texel_mem_blk_fmt_t b8g8r8a8_srgb;
16 19 u32 mem_types_n; u32 mem_types_n;
17 20 struct vk_mem_type_t mem_types[VK_MEM_TYPES_N_MAX]; struct vk_mem_type_t mem_types[VK_MEM_TYPES_N_MAX];
18 21 struct vk_surf_caps_t surf_caps; struct vk_surf_caps_t surf_caps;
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/sylware/nyanmp

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/sylware/nyanmp

Clone this repository using git:
git clone git://git.rocketgit.com/user/sylware/nyanmp

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main