diff options
| author | Andre Weissflog <floooh@gmail.com> | 2025-09-22 17:27:47 +0200 |
|---|---|---|
| committer | Andre Weissflog <floooh@gmail.com> | 2025-09-22 17:27:47 +0200 |
| commit | bd805109d4f406601216774840bd5c6613852427 (patch) | |
| tree | e9b26d49bdc6c5570707d9d4e5d6a492a7cf3d50 /tests/functional/sokol_gfx_test.c | |
| parent | 0202220cf283278099dbe07495c3a488f60a0087 (diff) | |
sokol_gfx.h: fix dummy backend and tests
Diffstat (limited to 'tests/functional/sokol_gfx_test.c')
| -rw-r--r-- | tests/functional/sokol_gfx_test.c | 59 |
1 files changed, 47 insertions, 12 deletions
diff --git a/tests/functional/sokol_gfx_test.c b/tests/functional/sokol_gfx_test.c index 1003e570..cfe92d60 100644 --- a/tests/functional/sokol_gfx_test.c +++ b/tests/functional/sokol_gfx_test.c @@ -2526,7 +2526,9 @@ UTEST(sokol_gfx, sg_query_surface_pitch) { } UTEST(sokol_gfx, max_texture_bindings_per_stage_vs) { - setup(&(sg_desc){0}); + setup(&(sg_desc){ + .disable_validation = true, + }); sg_shader_desc desc = {0}; for (int i = 0; i < SG_MAX_VIEW_BINDSLOTS; i++) { desc.views[i].texture.stage = SG_SHADERSTAGE_VERTEX; @@ -2538,7 +2540,9 @@ UTEST(sokol_gfx, max_texture_bindings_per_stage_vs) { } UTEST(sokol_gfx, max_texture_bindings_per_stage_fs) { - setup(&(sg_desc){0}); + setup(&(sg_desc){ + .disable_validation = true, + }); sg_shader_desc desc = {0}; for (int i = 0; i < SG_MAX_VIEW_BINDSLOTS; i++) { desc.views[i].texture.stage = SG_SHADERSTAGE_FRAGMENT; @@ -2550,7 +2554,9 @@ UTEST(sokol_gfx, max_texture_bindings_per_stage_fs) { } UTEST(sokol_gfx, max_texture_bindings_per_stage_cs) { - setup(&(sg_desc){0}); + setup(&(sg_desc){ + .disable_validation = true, + }); sg_shader_desc desc = {0}; for (int i = 0; i < SG_MAX_VIEW_BINDSLOTS; i++) { desc.views[i].texture.stage = SG_SHADERSTAGE_COMPUTE; @@ -2574,7 +2580,9 @@ UTEST(sokol_gfx, max_storagebuffer_bindings_per_stage_vs) { } UTEST(sokol_gfx, max_storagebuffer_bindings_per_stage_fs) { - setup(&(sg_desc){0}); + setup(&(sg_desc){ + .disable_validation = true, + }); sg_shader_desc desc = {0}; for (int i = 0; i < SG_MAX_VIEW_BINDSLOTS; i++) { desc.views[i].storage_buffer.stage = SG_SHADERSTAGE_FRAGMENT; @@ -2585,20 +2593,37 @@ UTEST(sokol_gfx, max_storagebuffer_bindings_per_stage_fs) { sg_shutdown(); } -UTEST(sokol_gfx, max_storagebuffer_bindings_per_stage_cs) { +UTEST(sokol_gfx, max_writable_storagebuffer_bindings_per_stage_cs) { + setup(&(sg_desc){ + .disable_validation = true, + }); + sg_shader_desc desc = {0}; + for (int i = 0; i < SG_MAX_VIEW_BINDSLOTS; i++) { + desc.views[i].storage_buffer.stage = SG_SHADERSTAGE_COMPUTE; + } + sg_shader shd = sg_make_shader(&desc); + T(sg_query_shader_state(shd) == SG_RESOURCESTATE_FAILED); + T(log_items[0] == SG_LOGITEM_SHADERDESC_TOO_MANY_COMPUTESTAGE_WRITABLE_STORAGEBUFFERS); + sg_shutdown(); +} + +UTEST(sokol_gfx, max_readonly_storagebuffer_bindings_per_stage_cs) { setup(&(sg_desc){0}); sg_shader_desc desc = {0}; for (int i = 0; i < SG_MAX_VIEW_BINDSLOTS; i++) { desc.views[i].storage_buffer.stage = SG_SHADERSTAGE_COMPUTE; + desc.views[i].storage_buffer.readonly = true; } sg_shader shd = sg_make_shader(&desc); T(sg_query_shader_state(shd) == SG_RESOURCESTATE_FAILED); - T(log_items[0] == SG_LOGITEM_SHADERDESC_TOO_MANY_COMPUTESTAGE_STORAGEBUFFERS); + T(log_items[0] == SG_LOGITEM_SHADERDESC_TOO_MANY_COMPUTESTAGE_READONLY_STORAGEBUFFERS); sg_shutdown(); } UTEST(sokol_gfx, max_storageimage_bindings_per_stage_vs) { - setup(&(sg_desc){0}); + setup(&(sg_desc){ + .disable_validation = true, + }); sg_shader_desc desc = {0}; for (int i = 0; i < SG_MAX_VIEW_BINDSLOTS; i++) { desc.views[i].storage_image.stage = SG_SHADERSTAGE_VERTEX; @@ -2610,7 +2635,9 @@ UTEST(sokol_gfx, max_storageimage_bindings_per_stage_vs) { } UTEST(sokol_gfx, max_storageimage_bindings_per_stage_fs) { - setup(&(sg_desc){0}); + setup(&(sg_desc){ + .disable_validation = true, + }); sg_shader_desc desc = {0}; for (int i = 0; i < SG_MAX_VIEW_BINDSLOTS; i++) { desc.views[i].storage_image.stage = SG_SHADERSTAGE_FRAGMENT; @@ -2622,7 +2649,9 @@ UTEST(sokol_gfx, max_storageimage_bindings_per_stage_fs) { } UTEST(sokol_gfx, max_storageimage_bindings_per_stage_cs) { - setup(&(sg_desc){0}); + setup(&(sg_desc){ + .disable_validation = true, + }); sg_shader_desc desc = {0}; for (int i = 0; i < SG_MAX_VIEW_BINDSLOTS; i++) { desc.views[i].storage_image.stage = SG_SHADERSTAGE_COMPUTE; @@ -2634,7 +2663,9 @@ UTEST(sokol_gfx, max_storageimage_bindings_per_stage_cs) { } UTEST(sokol_gfx, max_texturesamplerpairs_per_stage_vs) { - setup(&(sg_desc){0}); + setup(&(sg_desc){ + .disable_validation = true, + }); sg_shader_desc desc = {0}; for (int i = 0; i < SG_MAX_VIEW_BINDSLOTS; i++) { desc.texture_sampler_pairs[i].stage = SG_SHADERSTAGE_VERTEX; @@ -2646,7 +2677,9 @@ UTEST(sokol_gfx, max_texturesamplerpairs_per_stage_vs) { } UTEST(sokol_gfx, max_texturesamplerpairs_per_stage_fs) { - setup(&(sg_desc){0}); + setup(&(sg_desc){ + .disable_validation = true, + }); sg_shader_desc desc = {0}; for (int i = 0; i < SG_MAX_VIEW_BINDSLOTS; i++) { desc.texture_sampler_pairs[i].stage = SG_SHADERSTAGE_FRAGMENT; @@ -2658,7 +2691,9 @@ UTEST(sokol_gfx, max_texturesamplerpairs_per_stage_fs) { } UTEST(sokol_gfx, max_texturesamplerpairs_per_stage_cs) { - setup(&(sg_desc){0}); + setup(&(sg_desc){ + .disable_validation = true, + }); sg_shader_desc desc = {0}; for (int i = 0; i < SG_MAX_VIEW_BINDSLOTS; i++) { desc.texture_sampler_pairs[i].stage = SG_SHADERSTAGE_COMPUTE; |