Skip to content

Commit 5f981b3

Browse files
committed
sokol_gfx.h: detailed attachment usage flags in sg_image_usage
1 parent ee135c5 commit 5f981b3

1 file changed

Lines changed: 58 additions & 49 deletions

File tree

sokol_gfx.h

Lines changed: 58 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -3076,7 +3076,7 @@ typedef struct sg_bindings {
30763076
the buffer will bound as vertex buffer via sg_bindings.vertex_buffers[]
30773077
.index_buffer (default: false)
30783078
the buffer will bound as index buffer via sg_bindings.index_buffer
3079-
.storage_buffer (default: false)
3079+
.storage_buffer_binding (default: false)
30803080
the buffer will bound as storage buffer via sg_bindings.storage_buffers[]
30813081
.immutable (default: true)
30823082
the buffer content will never be updated from the CPU side (but
@@ -3089,7 +3089,7 @@ typedef struct sg_bindings {
30893089
typedef struct sg_buffer_usage {
30903090
bool vertex_buffer;
30913091
bool index_buffer;
3092-
bool storage_buffer;
3092+
bool storage_buffer_binding;
30933093
bool immutable;
30943094
bool dynamic_update;
30953095
bool stream_update;
@@ -3169,15 +3169,15 @@ typedef struct sg_buffer_desc {
31693169

31703170
Describes how the image object is going to be used:
31713171

3172-
.texture (default: true)
3173-
the image object is used as a texture-binding in
3174-
a render- or compute-pass
3175-
.storage_image (default: false)
3172+
.storage_image_binding (default: false)
31763173
the image object is used as storage-image-binding in a
31773174
compute pass (to be written to by compute shaders)
3178-
.attachment (default: false)
3179-
the image object is used as color-, resolve- or depth-stencil-
3180-
attachment in a render pass
3175+
.color_attachment (default: false)
3176+
the image object is used as a color-attachemnt in a render pass
3177+
.resolve_attachment (default: false)
3178+
the image object is used as a resolve-attachment in a render pass
3179+
.depth_stencil_attachment (default: false)
3180+
the image object is used as a depth-stencil-attachment in a render pass
31813181
.immutable (default: true)
31823182
the image content cannot be updated from the CPU side
31833183
(but may be updated by the GPU in a render- or compute-pass)
@@ -3189,7 +3189,10 @@ typedef struct sg_buffer_desc {
31893189
Note that the usage as texture binding is implicit and always allowed.
31903190
*/
31913191
typedef struct sg_image_usage {
3192-
bool attachment;
3192+
bool storage_image_binding;
3193+
bool color_attachment;
3194+
bool resolve_attachment;
3195+
bool depth_stencil_attachment;
31933196
bool storage_image;
31943197
bool immutable;
31953198
bool dynamic_update;
@@ -4252,20 +4255,20 @@ typedef struct sg_frame_stats {
42524255
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDATA_DATA_SIZE, "sg_image_data: data size doesn't match expected surface size") \
42534256
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_CANARY, "sg_image_desc not initialized") \
42544257
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_IMMUTABLE_DYNAMIC_STREAM, "sg_image_desc.usage: only one of .immutable, .dynamic_update, .stream_update can be true") \
4255-
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_ATTACHMENT_VS_STORAGE_IMAGE, "sg_image_desc.usage: only one of .attachment or .storage_image can be true") \
42564258
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_WIDTH, "sg_image_desc.width must be > 0") \
42574259
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_HEIGHT, "sg_image_desc.height must be > 0") \
42584260
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_NONRT_PIXELFORMAT, "invalid pixel format for non-render-target image") \
42594261
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_MSAA_BUT_NO_ATTACHMENT, "non-attachment images cannot be multisampled") \
42604262
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_DEPTH_3D_IMAGE, "3D images cannot have a depth/stencil image format") \
42614263
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_ATTACHMENT_EXPECT_IMMUTABLE, "render/storage attachment images must be sg_image_usage.immutable") \
42624264
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_ATTACHMENT_EXPECT_NO_DATA, "render/storage attachment images cannot be initialized with data") \
4263-
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_RENDERATTACHMENT_NO_MSAA_SUPPORT, "multisampling not supported for this pixel format") \
4264-
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_RENDERATTACHMENT_MSAA_NUM_MIPMAPS, "multisample images must have num_mipmaps == 1") \
4265-
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_RENDERATTACHMENT_MSAA_3D_IMAGE, "3D images cannot have a sample_count > 1") \
4266-
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_RENDERATTACHMENT_MSAA_CUBE_IMAGE, "cube images cannot have sample_count > 1") \
4267-
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_RENDERATTACHMENT_MSAA_ARRAY_IMAGE, "array images cannot have sample_count > 1") \
4268-
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_RENDERATTACHMENT_PIXELFORMAT, "invalid pixel format for render attachment image") \
4265+
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_ATTACHMENT_PIXELFORMAT, "invalid pixel format for render attachment image") \
4266+
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_ATTACHMENT_RESOLVE_EXPECT_NO_MSAA, "resolve attachment images cannot be multisampled") \
4267+
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_ATTACHMENT_NO_MSAA_SUPPORT, "multisampling not supported for this pixel format") \
4268+
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_ATTACHMENT_MSAA_NUM_MIPMAPS, "multisample images must have num_mipmaps == 1") \
4269+
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_ATTACHMENT_MSAA_3D_IMAGE, "3D images cannot have a sample_count > 1") \
4270+
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_ATTACHMENT_MSAA_CUBE_IMAGE, "cube images cannot have sample_count > 1") \
4271+
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_ATTACHMENT_MSAA_ARRAY_IMAGE, "array images cannot have sample_count > 1") \
42694272
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_STORAGEIMAGE_PIXELFORMAT, "invalid pixel format for storage image") \
42704273
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_STORAGEIMAGE_EXPECT_NO_MSAA, "storage images cannot be multisampled") \
42714274
_SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_INJECTED_NO_DATA, "images with injected textures cannot be initialized with data") \
@@ -14507,16 +14510,19 @@ _SOKOL_PRIVATE bool _sg_mtl_init_texdesc(MTLTextureDescriptor* mtl_desc, _sg_ima
1450714510
}
1450814511
mtl_desc.sampleCount = (NSUInteger)img->cmn.sample_count;
1450914512

14513+
const sg_image_usage* usg = &img->cmn.usage;
14514+
const bool any_attachment = usg->color_attachment || usg->resolve_attachment || usg->depth_stencil_attachment;
1451014515
MTLTextureUsage mtl_tex_usage = MTLTextureUsageShaderRead;
14511-
if (img->cmn.usage.attachment) {
14516+
if (any_attachment) {
1451214517
mtl_tex_usage |= MTLTextureUsageRenderTarget;
14513-
} else if (img->cmn.usage.storage_image) {
14518+
}
14519+
if (img->cmn.usage.storage_image_binding) {
1451414520
mtl_tex_usage |= MTLTextureUsageShaderWrite;
1451514521
}
1451614522
mtl_desc.usage = mtl_tex_usage;
1451714523

1451814524
MTLResourceOptions mtl_res_options = 0;
14519-
if (img->cmn.usage.attachment || img->cmn.usage.storage_image) {
14525+
if (any_attachment || img->cmn.usage.storage_image_binding) {
1452014526
mtl_res_options |= MTLResourceStorageModePrivate;
1452114527
} else {
1452214528
mtl_res_options |= _sg_mtl_resource_options_storage_mode_managed_or_shared();
@@ -14525,7 +14531,6 @@ _SOKOL_PRIVATE bool _sg_mtl_init_texdesc(MTLTextureDescriptor* mtl_desc, _sg_ima
1452514531
}
1452614532
}
1452714533
mtl_desc.resourceOptions = mtl_res_options;
14528-
1452914534
return true;
1453014535
}
1453114536

@@ -18466,7 +18471,7 @@ _SOKOL_PRIVATE bool _sg_validate_buffer_desc(const sg_buffer_desc* desc) {
1846618471
_SG_VALIDATE(desc->size > 0, VALIDATE_BUFFERDESC_EXPECT_NONZERO_SIZE);
1846718472
_SG_VALIDATE(_sg_one(desc->usage.immutable, desc->usage.dynamic_update, desc->usage.stream_update), VALIDATE_BUFFERDESC_IMMUTABLE_DYNAMIC_STREAM);
1846818473
if (_sg.features.separate_buffer_types) {
18469-
_SG_VALIDATE(_sg_one(desc->usage.vertex_buffer, desc->usage.index_buffer, desc->usage.storage_buffer), VALIDATE_BUFFERDESC_SEPARATE_BUFFER_TYPES);
18474+
_SG_VALIDATE(_sg_one(desc->usage.vertex_buffer, desc->usage.index_buffer, desc->usage.storage_buffer_binding), VALIDATE_BUFFERDESC_SEPARATE_BUFFER_TYPES);
1847018475
}
1847118476
bool injected = (0 != desc->gl_buffers[0]) ||
1847218477
(0 != desc->mtl_buffers[0]) ||
@@ -18476,14 +18481,14 @@ _SOKOL_PRIVATE bool _sg_validate_buffer_desc(const sg_buffer_desc* desc) {
1847618481
if (desc->data.ptr) {
1847718482
_SG_VALIDATE(desc->size == desc->data.size, VALIDATE_BUFFERDESC_EXPECT_MATCHING_DATA_SIZE);
1847818483
} else {
18479-
_SG_VALIDATE(desc->usage.storage_buffer, VALIDATE_BUFFERDESC_EXPECT_DATA);
18484+
_SG_VALIDATE(desc->usage.storage_buffer_binding, VALIDATE_BUFFERDESC_EXPECT_DATA);
1848018485
_SG_VALIDATE(desc->data.size == 0, VALIDATE_BUFFERDESC_EXPECT_ZERO_DATA_SIZE);
1848118486
}
1848218487
} else {
1848318488
_SG_VALIDATE(0 == desc->data.ptr, VALIDATE_BUFFERDESC_EXPECT_NO_DATA);
1848418489
_SG_VALIDATE(desc->data.size == 0, VALIDATE_BUFFERDESC_EXPECT_ZERO_DATA_SIZE);
1848518490
}
18486-
if (desc->usage.storage_buffer) {
18491+
if (desc->usage.storage_buffer_binding) {
1848718492
_SG_VALIDATE(_sg.features.compute, VALIDATE_BUFFERDESC_STORAGEBUFFER_SUPPORTED);
1848818493
_SG_VALIDATE(_sg_multiple_u64(desc->size, 4), VALIDATE_BUFFERDESC_STORAGEBUFFER_SIZE_MULTIPLE_4);
1848918494
}
@@ -18524,39 +18529,40 @@ _SOKOL_PRIVATE bool _sg_validate_image_desc(const sg_image_desc* desc) {
1852418529
if (_sg.desc.disable_validation) {
1852518530
return true;
1852618531
}
18532+
const sg_image_usage* usg = &desc->usage;
18533+
const bool any_attachment = usg->color_attachment || usg->resolve_attachment || usg->depth_stencil_attachment;
1852718534
SOKOL_ASSERT(desc);
1852818535
_sg_validate_begin();
1852918536
_SG_VALIDATE(desc->_start_canary == 0, VALIDATE_IMAGEDESC_CANARY);
1853018537
_SG_VALIDATE(desc->_end_canary == 0, VALIDATE_IMAGEDESC_CANARY);
18531-
_SG_VALIDATE(_sg_one(desc->usage.immutable, desc->usage.dynamic_update, desc->usage.stream_update), VALIDATE_IMAGEDESC_IMMUTABLE_DYNAMIC_STREAM);
18532-
if (desc->usage.attachment || desc->usage.storage_image) {
18533-
_SG_VALIDATE(_sg_one(desc->usage.attachment, desc->usage.storage_image, false), VALIDATE_IMAGEDESC_ATTACHMENT_VS_STORAGE_IMAGE);
18534-
}
18538+
_SG_VALIDATE(_sg_one(usg->immutable, usg->dynamic_update, usg->stream_update), VALIDATE_IMAGEDESC_IMMUTABLE_DYNAMIC_STREAM);
1853518539
_SG_VALIDATE(desc->width > 0, VALIDATE_IMAGEDESC_WIDTH);
1853618540
_SG_VALIDATE(desc->height > 0, VALIDATE_IMAGEDESC_HEIGHT);
1853718541
const sg_pixel_format fmt = desc->pixel_format;
18538-
const sg_image_usage* usage = &desc->usage;
1853918542
const bool injected = (0 != desc->gl_textures[0]) ||
1854018543
(0 != desc->mtl_textures[0]) ||
1854118544
(0 != desc->d3d11_texture) ||
1854218545
(0 != desc->wgpu_texture);
1854318546
if (_sg_is_depth_or_depth_stencil_format(fmt)) {
1854418547
_SG_VALIDATE(desc->type != SG_IMAGETYPE_3D, VALIDATE_IMAGEDESC_DEPTH_3D_IMAGE);
1854518548
}
18546-
if (usage->attachment || usage->storage_image) {
18549+
if (any_attachment || usg->storage_image_binding) {
1854718550
SOKOL_ASSERT(((int)fmt >= 0) && ((int)fmt < _SG_PIXELFORMAT_NUM));
18548-
_SG_VALIDATE(usage->immutable, VALIDATE_IMAGEDESC_ATTACHMENT_EXPECT_IMMUTABLE);
18551+
_SG_VALIDATE(usg->immutable, VALIDATE_IMAGEDESC_ATTACHMENT_EXPECT_IMMUTABLE);
1854918552
_SG_VALIDATE(desc->data.subimage[0][0].ptr==0, VALIDATE_IMAGEDESC_ATTACHMENT_EXPECT_NO_DATA);
18550-
if (usage->attachment) {
18551-
_SG_VALIDATE(_sg.formats[fmt].render, VALIDATE_IMAGEDESC_RENDERATTACHMENT_PIXELFORMAT);
18553+
if (any_attachment) {
18554+
_SG_VALIDATE(_sg.formats[fmt].render, VALIDATE_IMAGEDESC_ATTACHMENT_PIXELFORMAT);
18555+
if (usg->resolve_attachment) {
18556+
_SG_VALIDATE(desc->sample_count == 1, VALIDATE_IMAGEDESC_ATTACHMENT_RESOLVE_EXPECT_NO_MSAA);
18557+
}
1855218558
if (desc->sample_count > 1) {
18553-
_SG_VALIDATE(_sg.formats[fmt].msaa, VALIDATE_IMAGEDESC_RENDERATTACHMENT_NO_MSAA_SUPPORT);
18554-
_SG_VALIDATE(desc->num_mipmaps == 1, VALIDATE_IMAGEDESC_RENDERATTACHMENT_MSAA_NUM_MIPMAPS);
18555-
_SG_VALIDATE(desc->type != SG_IMAGETYPE_ARRAY, VALIDATE_IMAGEDESC_RENDERATTACHMENT_MSAA_ARRAY_IMAGE);
18556-
_SG_VALIDATE(desc->type != SG_IMAGETYPE_3D, VALIDATE_IMAGEDESC_RENDERATTACHMENT_MSAA_3D_IMAGE);
18557-
_SG_VALIDATE(desc->type != SG_IMAGETYPE_CUBE, VALIDATE_IMAGEDESC_RENDERATTACHMENT_MSAA_CUBE_IMAGE);
18559+
_SG_VALIDATE(_sg.formats[fmt].msaa, VALIDATE_IMAGEDESC_ATTACHMENT_NO_MSAA_SUPPORT);
18560+
_SG_VALIDATE(desc->num_mipmaps == 1, VALIDATE_IMAGEDESC_ATTACHMENT_MSAA_NUM_MIPMAPS);
18561+
_SG_VALIDATE(desc->type != SG_IMAGETYPE_ARRAY, VALIDATE_IMAGEDESC_ATTACHMENT_MSAA_ARRAY_IMAGE);
18562+
_SG_VALIDATE(desc->type != SG_IMAGETYPE_3D, VALIDATE_IMAGEDESC_ATTACHMENT_MSAA_3D_IMAGE);
18563+
_SG_VALIDATE(desc->type != SG_IMAGETYPE_CUBE, VALIDATE_IMAGEDESC_ATTACHMENT_MSAA_CUBE_IMAGE);
1855818564
}
18559-
} else if (usage->storage_image) {
18565+
} else if (usg->storage_image) {
1856018566
_SG_VALIDATE(_sg_is_valid_storage_image_format(fmt), VALIDATE_IMAGEDESC_STORAGEIMAGE_PIXELFORMAT);
1856118567
// D3D11 doesn't allow multisampled UAVs (see: https://github.com/gpuweb/gpuweb/issues/513)
1856218568
_SG_VALIDATE(desc->sample_count == 1, VALIDATE_IMAGEDESC_STORAGEIMAGE_EXPECT_NO_MSAA);
@@ -18567,9 +18573,9 @@ _SOKOL_PRIVATE bool _sg_validate_image_desc(const sg_image_desc* desc) {
1856718573
_SG_VALIDATE(valid_nonrt_fmt, VALIDATE_IMAGEDESC_NONRT_PIXELFORMAT);
1856818574
const bool is_compressed = _sg_is_compressed_pixel_format(desc->pixel_format);
1856918575
if (is_compressed) {
18570-
_SG_VALIDATE(usage->immutable, VALIDATE_IMAGEDESC_COMPRESSED_IMMUTABLE);
18576+
_SG_VALIDATE(usg->immutable, VALIDATE_IMAGEDESC_COMPRESSED_IMMUTABLE);
1857118577
}
18572-
if (!injected && usage->immutable) {
18578+
if (!injected && usg->immutable) {
1857318579
// image desc must have valid data
1857418580
_sg_validate_image_data(&desc->data,
1857518581
desc->pixel_format,
@@ -18587,7 +18593,7 @@ _SOKOL_PRIVATE bool _sg_validate_image_desc(const sg_image_desc* desc) {
1858718593
if (injected) {
1858818594
_SG_VALIDATE(no_data && no_size, VALIDATE_IMAGEDESC_INJECTED_NO_DATA);
1858918595
}
18590-
if (!usage->immutable) {
18596+
if (!usg->immutable) {
1859118597
_SG_VALIDATE(no_data && no_size, VALIDATE_IMAGEDESC_DYNAMIC_NO_DATA);
1859218598
}
1859318599
}
@@ -19119,29 +19125,29 @@ _SOKOL_PRIVATE bool _sg_validate_view_desc(const sg_view_desc* desc) {
1911919125
switch (view_type) {
1912019126
case SG_VIEWTYPE_STORAGEBUFFER:
1912119127
SOKOL_ASSERT(buf);
19122-
_SG_VALIDATE(buf->cmn.usage.storage_buffer, VALIDATE_VIEWDESC_STORAGEBUFFER_USAGE);
19128+
_SG_VALIDATE(buf->cmn.usage.storage_buffer_binding, VALIDATE_VIEWDESC_STORAGEBUFFER_USAGE);
1912319129
break;
1912419130
case SG_VIEWTYPE_STORAGEIMAGE:
1912519131
SOKOL_ASSERT(img);
19126-
_SG_VALIDATE(img->cmn.usage.storage_image, VALIDATE_VIEWDESC_STORAGEIMAGE_USAGE);
19132+
_SG_VALIDATE(img->cmn.usage.storage_image_binding, VALIDATE_VIEWDESC_STORAGEIMAGE_USAGE);
1912719133
_SG_VALIDATE(_sg_is_valid_storage_image_format(img->cmn.pixel_format), VALIDATE_VIEWDESC_STORAGEIMAGE_PIXELFORMAT);
1912819134
break;
1912919135
case SG_VIEWTYPE_TEXTURE:
1913019136
// nothing to validate?
1913119137
break;
1913219138
case SG_VIEWTYPE_COLORATTACHMENT:
1913319139
SOKOL_ASSERT(img);
19134-
_SG_VALIDATE(img->cmn.usage.attachment, VALIDATE_VIEWDESC_COLORATTACHMENT_USAGE);
19140+
_SG_VALIDATE(img->cmn.usage.color_attachment, VALIDATE_VIEWDESC_COLORATTACHMENT_USAGE);
1913519141
_SG_VALIDATE(_sg_is_valid_attachment_color_format(img->cmn.pixel_format), VALIDATE_VIEWDESC_COLORATTACHMENT_PIXELFORMAT);
1913619142
break;
1913719143
case SG_VIEWTYPE_RESOLVEATTACHMENT:
1913819144
SOKOL_ASSERT(img);
19139-
_SG_VALIDATE(img->cmn.usage.attachment, VALIDATE_VIEWDESC_RESOLVEATTACHMENT_USAGE);
19145+
_SG_VALIDATE(img->cmn.usage.resolve_attachment, VALIDATE_VIEWDESC_RESOLVEATTACHMENT_USAGE);
1914019146
_SG_VALIDATE(img->cmn.sample_count == 1, VALIDATE_VIEWDESC_RESOLVEATTACHMENT_SAMPLECOUNT);
1914119147
break;
1914219148
case SG_VIEWTYPE_DEPTHSTENCILATTACHMENT:
1914319149
SOKOL_ASSERT(img);
19144-
_SG_VALIDATE(img->cmn.usage.attachment, VALIDATE_VIEWDESC_DEPTHSTENCILATTACHMENT_USAGE);
19150+
_SG_VALIDATE(img->cmn.usage.depth_stencil_attachment, VALIDATE_VIEWDESC_DEPTHSTENCILATTACHMENT_USAGE);
1914519151
_SG_VALIDATE(_sg_is_valid_attachment_depth_format(img->cmn.pixel_format), VALIDATE_VIEWDESC_DEPTHSTENCILATTACHMENT_PIXELFORMAT);
1914619152
break;
1914719153
case SG_VIEWTYPE_INVALID:
@@ -19847,7 +19853,7 @@ _SOKOL_PRIVATE bool _sg_validate_update_image(const _sg_image_t* img, const sg_i
1984719853
// >>resources
1984819854
_SOKOL_PRIVATE sg_buffer_usage _sg_buffer_usage_defaults(const sg_buffer_usage* usg) {
1984919855
sg_buffer_usage def = *usg;
19850-
if (!(def.vertex_buffer || def.index_buffer || def.storage_buffer)) {
19856+
if (!(def.vertex_buffer || def.index_buffer || def.storage_buffer_binding)) {
1985119857
def.vertex_buffer = true;
1985219858
}
1985319859
if (!(def.immutable || def.stream_update || def.dynamic_update)) {
@@ -19880,9 +19886,12 @@ _SOKOL_PRIVATE sg_image_desc _sg_image_desc_defaults(const sg_image_desc* desc)
1988019886
def.usage = _sg_image_usage_defaults(&def.usage);
1988119887
def.num_slices = _sg_def(def.num_slices, 1);
1988219888
def.num_mipmaps = _sg_def(def.num_mipmaps, 1);
19883-
if (def.usage.attachment) {
19889+
if (def.usage.color_attachment || def.usage.resolve_attachment) {
1988419890
def.pixel_format = _sg_def(def.pixel_format, _sg.desc.environment.defaults.color_format);
1988519891
def.sample_count = _sg_def(def.sample_count, _sg.desc.environment.defaults.sample_count);
19892+
} else if (def.usage.depth_stencil_attachment) {
19893+
def.pixel_format = _sg_def(def.pixel_format, _sg.desc.environment.defaults.depth_format);
19894+
def.sample_count = _sg_def(def.sample_count, _sg.desc.environment.defaults.sample_count);
1988619895
} else {
1988719896
def.pixel_format = _sg_def(def.pixel_format, SG_PIXELFORMAT_RGBA8);
1988819897
def.sample_count = _sg_def(def.sample_count, 1);

0 commit comments

Comments
 (0)