14111411< a href =#1411 id =1411 data-nosnippet > 1411</ a > }
14121412< a href =#1412 id =1412 data-nosnippet > 1412</ a > }
14131413< a href =#1413 id =1413 data-nosnippet > 1413</ a >
1414- < a href =#1414 id =1414 data-nosnippet > 1414</ a > < span class ="comment "> // https://gpuweb.github.io/gpuweb/#abstract-opdef-calculating- color- attachment-bytes-per-sample
1415- < a href =#1415 id =1415 data-nosnippet > 1415</ a > </ span > < span class =" kw " > pub fn </ span > validate_color_attachment_bytes_per_sample(
1416- < a href =#1416 id =1416 data-nosnippet > 1416</ a > attachment_formats: < span class =" kw " > impl </ span > Iterator<Item = < span class =" prelude-ty " > Option </ span > <wgt::TextureFormat>>,
1417- < a href =#1417 id =1417 data-nosnippet > 1417</ a > limit: u32,
1418- < a href =#1418 id =1418 data-nosnippet > 1418</ a > ) -> < span class =" prelude-ty " > Result </ span > <(), u32 > {
1419- < a href =#1419 id =1419 data-nosnippet > 1419</ a > < span class =" kw " > let < /span > < span class ="kw-2 " > mut </ span > total_bytes_per_sample: u32 = < span class =" number " > 0 < /span > ;
1420- < a href =#1420 id =1420 data-nosnippet > 1420</ a > < span class ="kw "> for </ span > format < span class =" kw " > in </ span > attachment_formats {
1421- < a href =#1421 id =1421 data-nosnippet > 1421</ a > < span class =" kw " > let </ span > < span class =" prelude-val " > Some </ span > (format) = format < span class =" kw " > else </ span > {
1422- < a href =#1422 id =1422 data-nosnippet > 1422</ a > < span class ="kw "> continue </ span > ;
1423- < a href =#1423 id =1423 data-nosnippet > 1423</ a > } ;
1424- < a href =#1424 id =1424 data-nosnippet > 1424</ a >
1414+ < a href =#1414 id =1414 data-nosnippet > 1414</ a > < span class ="doccomment "> /// Validate a list of color attachment formats against `maxColorAttachmentBytesPerSample`.
1415+ < a href =#1415 id =1415 data-nosnippet > 1415</ a > ///
1416+ < a href =#1416 id =1416 data-nosnippet > 1416</ a > /// The color attachments can be from a render pass descriptor or a pipeline descriptor.
1417+ < a href =#1417 id =1417 data-nosnippet > 1417</ a > ///
1418+ < a href =#1418 id =1418 data-nosnippet > 1418</ a > /// Implements <https://gpuweb.github.io/gpuweb/#abstract-opdef-calculating-color-attachment-bytes-per-sample >.
1419+ < a href =#1419 id =1419 data-nosnippet > 1419</ a > < /span > < span class ="kw " > pub fn < /span > validate_color_attachment_bytes_per_sample(
1420+ < a href =#1420 id =1420 data-nosnippet > 1420</ a > attachment_formats: < span class ="kw "> impl </ span > IntoIterator<Item = wgt::TextureFormat>,
1421+ < a href =#1421 id =1421 data-nosnippet > 1421</ a > limit: u32,
1422+ < a href =#1422 id =1422 data-nosnippet > 1422</ a > ) -> < span class =" prelude-ty " > Result </ span > <(), < span class ="kw "> crate </ span > ::command::ColorAttachmentError> {
1423+ < a href =#1423 id =1423 data-nosnippet > 1423</ a > < span class =" kw " > let </ span > < span class =" kw-2 " > mut </ span > total_bytes_per_sample: u32 = < span class =" number " > 0 </ span > ;
1424+ < a href =#1424 id =1424 data-nosnippet > 1424</ a > < span class =" kw " > for </ span > format < span class =" kw " > in </ span > attachment_formats {
14251425< a href =#1425 id =1425 data-nosnippet > 1425</ a > < span class ="kw "> let </ span > byte_cost = format.target_pixel_byte_cost().unwrap();
14261426< a href =#1426 id =1426 data-nosnippet > 1426</ a > < span class ="kw "> let </ span > alignment = format.target_component_alignment().unwrap();
14271427< a href =#1427 id =1427 data-nosnippet > 1427</ a >
14301430< a href =#1430 id =1430 data-nosnippet > 1430</ a > }
14311431< a href =#1431 id =1431 data-nosnippet > 1431</ a >
14321432< a href =#1432 id =1432 data-nosnippet > 1432</ a > < span class ="kw "> if </ span > total_bytes_per_sample > limit {
1433- < a href =#1433 id =1433 data-nosnippet > 1433</ a > < span class ="kw "> return </ span > < span class ="prelude-val "> Err</ span > (total_bytes_per_sample);
1434- < a href =#1434 id =1434 data-nosnippet > 1434</ a > }
1435- < a href =#1435 id =1435 data-nosnippet > 1435</ a >
1436- < a href =#1436 id =1436 data-nosnippet > 1436</ a > < span class ="prelude-val "> Ok</ span > (())
1437- < a href =#1437 id =1437 data-nosnippet > 1437</ a > }</ code > </ pre > </ div > </ section > </ main > </ body > </ html >
1433+ < a href =#1433 id =1433 data-nosnippet > 1433</ a > < span class ="kw "> return </ span > < span class ="prelude-val "> Err</ span > (
1434+ < a href =#1434 id =1434 data-nosnippet > 1434</ a > < span class ="kw "> crate</ span > ::command::ColorAttachmentError::TooManyBytesPerSample {
1435+ < a href =#1435 id =1435 data-nosnippet > 1435</ a > total: total_bytes_per_sample,
1436+ < a href =#1436 id =1436 data-nosnippet > 1436</ a > limit,
1437+ < a href =#1437 id =1437 data-nosnippet > 1437</ a > },
1438+ < a href =#1438 id =1438 data-nosnippet > 1438</ a > );
1439+ < a href =#1439 id =1439 data-nosnippet > 1439</ a > }
1440+ < a href =#1440 id =1440 data-nosnippet > 1440</ a >
1441+ < a href =#1441 id =1441 data-nosnippet > 1441</ a > < span class ="prelude-val "> Ok</ span > (())
1442+ < a href =#1442 id =1442 data-nosnippet > 1442</ a > }</ code > </ pre > </ div > </ section > </ main > </ body > </ html >
0 commit comments