Skip to content

Commit

Permalink
Add support for remaining unsupported ASTC formats (#2963)
Browse files Browse the repository at this point in the history
* Add support for remaining unsupported ASTC formats
Add new ASTC formats into pixelformats example and ninja scripts
Rebuild ASTC textures

* Update idl and generate
Move comma in pixelformats

Co-authored-by: Raziel Alphadios <raziely@gmail.com>
  • Loading branch information
RazielXYZ and RazielZ authored Oct 26, 2022
1 parent 000d09d commit c2bc517
Show file tree
Hide file tree
Showing 34 changed files with 449 additions and 145 deletions.
42 changes: 41 additions & 1 deletion bindings/bf/bgfx.bf
Original file line number Diff line number Diff line change
Expand Up @@ -1678,11 +1678,21 @@ public static class bgfx
/// </summary>
ASTC4x4,

/// <summary>
/// ASTC 5x4 6.40 BPP
/// </summary>
ASTC5x4,

/// <summary>
/// ASTC 5x5 5.12 BPP
/// </summary>
ASTC5x5,

/// <summary>
/// ASTC 6x5 4.27 BPP
/// </summary>
ASTC6x5,

/// <summary>
/// ASTC 6x6 3.56 BPP
/// </summary>
Expand All @@ -1698,11 +1708,41 @@ public static class bgfx
/// </summary>
ASTC8x6,

/// <summary>
/// ASTC 8x8 2.00 BPP
/// </summary>
ASTC8x8,

/// <summary>
/// ASTC 10x5 2.56 BPP
/// </summary>
ASTC10x5,

/// <summary>
/// ASTC 10x6 2.13 BPP
/// </summary>
ASTC10x6,

/// <summary>
/// ASTC 10x8 1.60 BPP
/// </summary>
ASTC10x8,

/// <summary>
/// ASTC 10x10 1.28 BPP
/// </summary>
ASTC10x10,

/// <summary>
/// ASTC 12x10 1.07 BPP
/// </summary>
ASTC12x10,

/// <summary>
/// ASTC 12x12 0.89 BPP
/// </summary>
ASTC12x12,

/// <summary>
/// Compressed formats above.
/// </summary>
Expand Down Expand Up @@ -2045,7 +2085,7 @@ public static class bgfx
public uint8 numGPUs;
public GPU[4] gpu;
public Limits limits;
public uint16[88] formats;
public uint16[96] formats;
}

[CRepr]
Expand Down
42 changes: 41 additions & 1 deletion bindings/cs/bgfx.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1671,11 +1671,21 @@ public enum TextureFormat
/// </summary>
ASTC4x4,

/// <summary>
/// ASTC 5x4 6.40 BPP
/// </summary>
ASTC5x4,

/// <summary>
/// ASTC 5x5 5.12 BPP
/// </summary>
ASTC5x5,

/// <summary>
/// ASTC 6x5 4.27 BPP
/// </summary>
ASTC6x5,

/// <summary>
/// ASTC 6x6 3.56 BPP
/// </summary>
Expand All @@ -1691,11 +1701,41 @@ public enum TextureFormat
/// </summary>
ASTC8x6,

/// <summary>
/// ASTC 8x8 2.00 BPP
/// </summary>
ASTC8x8,

/// <summary>
/// ASTC 10x5 2.56 BPP
/// </summary>
ASTC10x5,

/// <summary>
/// ASTC 10x6 2.13 BPP
/// </summary>
ASTC10x6,

/// <summary>
/// ASTC 10x8 1.60 BPP
/// </summary>
ASTC10x8,

/// <summary>
/// ASTC 10x10 1.28 BPP
/// </summary>
ASTC10x10,

/// <summary>
/// ASTC 12x10 1.07 BPP
/// </summary>
ASTC12x10,

/// <summary>
/// ASTC 12x12 0.89 BPP
/// </summary>
ASTC12x12,

/// <summary>
/// Compressed formats above.
/// </summary>
Expand Down Expand Up @@ -2027,7 +2067,7 @@ public unsafe struct Limits
public byte numGPUs;
public fixed uint gpu[4];
public Limits limits;
public fixed ushort formats[88];
public fixed ushort formats[96];
}

public unsafe struct InternalData
Expand Down
10 changes: 9 additions & 1 deletion bindings/d/types.d
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ enum expandEnum(EnumType, string fqnEnumType = EnumType.stringof) = (){

extern(C) @nogc nothrow:

enum uint BGFX_API_VERSION = 117;
enum uint BGFX_API_VERSION = 118;

alias bgfx_view_id_t = ushort;

Expand Down Expand Up @@ -570,11 +570,19 @@ enum bgfx_texture_format_t
BGFX_TEXTURE_FORMAT_ATCE, /// ATCE RGBA 8 BPP explicit alpha
BGFX_TEXTURE_FORMAT_ATCI, /// ATCI RGBA 8 BPP interpolated alpha
BGFX_TEXTURE_FORMAT_ASTC4X4, /// ASTC 4x4 8.0 BPP
BGFX_TEXTURE_FORMAT_ASTC5X4, /// ASTC 5x4 6.40 BPP
BGFX_TEXTURE_FORMAT_ASTC5X5, /// ASTC 5x5 5.12 BPP
BGFX_TEXTURE_FORMAT_ASTC6X5, /// ASTC 6x5 4.27 BPP
BGFX_TEXTURE_FORMAT_ASTC6X6, /// ASTC 6x6 3.56 BPP
BGFX_TEXTURE_FORMAT_ASTC8X5, /// ASTC 8x5 3.20 BPP
BGFX_TEXTURE_FORMAT_ASTC8X6, /// ASTC 8x6 2.67 BPP
BGFX_TEXTURE_FORMAT_ASTC8X8, /// ASTC 8x8 2.00 BPP
BGFX_TEXTURE_FORMAT_ASTC10X5, /// ASTC 10x5 2.56 BPP
BGFX_TEXTURE_FORMAT_ASTC10X6, /// ASTC 10x6 2.13 BPP
BGFX_TEXTURE_FORMAT_ASTC10X8, /// ASTC 10x8 1.60 BPP
BGFX_TEXTURE_FORMAT_ASTC10X10, /// ASTC 10x10 1.28 BPP
BGFX_TEXTURE_FORMAT_ASTC12X10, /// ASTC 12x10 1.07 BPP
BGFX_TEXTURE_FORMAT_ASTC12X12, /// ASTC 12x12 0.89 BPP
BGFX_TEXTURE_FORMAT_UNKNOWN, /// Compressed formats above.
BGFX_TEXTURE_FORMAT_R1,
BGFX_TEXTURE_FORMAT_A8,
Expand Down
26 changes: 25 additions & 1 deletion bindings/zig/bgfx.zig
Original file line number Diff line number Diff line change
Expand Up @@ -1024,9 +1024,15 @@ pub const TextureFormat = enum(c_int) {
/// ASTC 4x4 8.0 BPP
ASTC4x4,

/// ASTC 5x4 6.40 BPP
ASTC5x4,

/// ASTC 5x5 5.12 BPP
ASTC5x5,

/// ASTC 6x5 4.27 BPP
ASTC6x5,

/// ASTC 6x6 3.56 BPP
ASTC6x6,

Expand All @@ -1036,9 +1042,27 @@ pub const TextureFormat = enum(c_int) {
/// ASTC 8x6 2.67 BPP
ASTC8x6,

/// ASTC 8x8 2.00 BPP
ASTC8x8,

/// ASTC 10x5 2.56 BPP
ASTC10x5,

/// ASTC 10x6 2.13 BPP
ASTC10x6,

/// ASTC 10x8 1.60 BPP
ASTC10x8,

/// ASTC 10x10 1.28 BPP
ASTC10x10,

/// ASTC 12x10 1.07 BPP
ASTC12x10,

/// ASTC 12x12 0.89 BPP
ASTC12x12,

/// Compressed formats above.
Unknown,
R1,
Expand Down Expand Up @@ -1291,7 +1315,7 @@ pub const Caps = extern struct {
numGPUs: u8,
gpu: [4]GPU,
limits: Limits,
formats: [88]u16,
formats: [96]u16,
};

pub const InternalData = extern struct {
Expand Down
50 changes: 29 additions & 21 deletions examples/47-pixelformats/pixelformats.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -470,27 +470,35 @@ class ExamplePixelFormats : public entry::AppI
m_textureSets.push_back(generateTextureSetFromFile("textures/pf_uv_filtering_test.dds") );
const char* textureCompressionSetFiles[] =
{
"textures/texture_compression_astc_10x5.dds"
, "textures/texture_compression_astc_4x4.dds"
, "textures/texture_compression_astc_5x5.dds"
, "textures/texture_compression_astc_6x6.dds"
, "textures/texture_compression_astc_8x5.dds"
, "textures/texture_compression_astc_8x6.dds"
, "textures/texture_compression_atc.dds"
, "textures/texture_compression_atce.dds"
, "textures/texture_compression_atci.dds"
, "textures/texture_compression_bc1.ktx"
, "textures/texture_compression_bc2.ktx"
, "textures/texture_compression_bc3.ktx"
, "textures/texture_compression_bc7.ktx"
, "textures/texture_compression_etc1.ktx"
, "textures/texture_compression_etc2.ktx"
, "textures/texture_compression_ptc12.pvr"
, "textures/texture_compression_ptc14.pvr"
, "textures/texture_compression_ptc22.pvr"
, "textures/texture_compression_ptc24.pvr"
, "textures/texture_compression_rgba8.dds"
, nullptr
"textures/texture_compression_astc_4x4.dds",
"textures/texture_compression_astc_5x4.dds",
"textures/texture_compression_astc_5x5.dds",
"textures/texture_compression_astc_6x5.dds",
"textures/texture_compression_astc_6x6.dds",
"textures/texture_compression_astc_8x5.dds",
"textures/texture_compression_astc_8x6.dds",
"textures/texture_compression_astc_8x8.dds",
"textures/texture_compression_astc_10x5.dds",
"textures/texture_compression_astc_10x6.dds",
"textures/texture_compression_astc_10x8.dds",
"textures/texture_compression_astc_10x10.dds",
"textures/texture_compression_astc_12x10.dds",
"textures/texture_compression_astc_12x12.dds",
"textures/texture_compression_atc.dds",
"textures/texture_compression_atce.dds",
"textures/texture_compression_atci.dds",
"textures/texture_compression_bc1.ktx",
"textures/texture_compression_bc2.ktx",
"textures/texture_compression_bc3.ktx",
"textures/texture_compression_bc7.ktx",
"textures/texture_compression_etc1.ktx",
"textures/texture_compression_etc2.ktx",
"textures/texture_compression_ptc12.pvr",
"textures/texture_compression_ptc14.pvr",
"textures/texture_compression_ptc22.pvr",
"textures/texture_compression_ptc24.pvr",
"textures/texture_compression_rgba8.dds",
nullptr
};
m_textureSets.push_back(generateTextureSetFromFileSet("texture_compression_* set", textureCompressionSetFiles));

Expand Down
32 changes: 20 additions & 12 deletions examples/assets/textures/textures.ninja
Original file line number Diff line number Diff line change
@@ -1,17 +1,25 @@
textures = $pwd/../../runtime/textures

build $textures/texture_compression_bc1.ktx: texturec_bc1 $pwd/texture-compression-test.png
build $textures/texture_compression_bc2.ktx: texturec_bc2 $pwd/texture-compression-test.png
build $textures/texture_compression_bc3.ktx: texturec_bc3 $pwd/texture-compression-test.png
build $textures/texture_compression_bc7.ktx: texturec_bc7 $pwd/texture-compression-test.png
build $textures/texture_compression_astc_4x4.dds: texturec_astc4x4 $pwd/texture-compression-test.png
build $textures/texture_compression_astc_5x5.dds: texturec_astc5x5 $pwd/texture-compression-test.png
build $textures/texture_compression_astc_6x6.dds: texturec_astc6x6 $pwd/texture-compression-test.png
build $textures/texture_compression_astc_8x5.dds: texturec_astc8x5 $pwd/texture-compression-test.png
build $textures/texture_compression_astc_8x6.dds: texturec_astc8x6 $pwd/texture-compression-test.png
build $textures/texture_compression_astc_10x5.dds: texturec_astc10x5 $pwd/texture-compression-test.png
build $textures/texture_compression_etc1.ktx: texturec_etc1 $pwd/texture-compression-test.png
build $textures/texture_compression_etc2.ktx: texturec_etc2 $pwd/texture-compression-test.png
build $textures/texture_compression_bc1.ktx: texturec_bc1 $pwd/texture-compression-test.png
build $textures/texture_compression_bc2.ktx: texturec_bc2 $pwd/texture-compression-test.png
build $textures/texture_compression_bc3.ktx: texturec_bc3 $pwd/texture-compression-test.png
build $textures/texture_compression_bc7.ktx: texturec_bc7 $pwd/texture-compression-test.png
build $textures/texture_compression_astc_4x4.dds: texturec_astc4x4 $pwd/texture-compression-test.png
build $textures/texture_compression_astc_5x4.dds: texturec_astc5x4 $pwd/texture-compression-test.png
build $textures/texture_compression_astc_5x5.dds: texturec_astc5x5 $pwd/texture-compression-test.png
build $textures/texture_compression_astc_6x5.dds: texturec_astc6x5 $pwd/texture-compression-test.png
build $textures/texture_compression_astc_6x6.dds: texturec_astc6x6 $pwd/texture-compression-test.png
build $textures/texture_compression_astc_8x5.dds: texturec_astc8x5 $pwd/texture-compression-test.png
build $textures/texture_compression_astc_8x6.dds: texturec_astc8x6 $pwd/texture-compression-test.png
build $textures/texture_compression_astc_8x8.dds: texturec_astc8x8 $pwd/texture-compression-test.png
build $textures/texture_compression_astc_10x5.dds: texturec_astc10x5 $pwd/texture-compression-test.png
build $textures/texture_compression_astc_10x6.dds: texturec_astc10x6 $pwd/texture-compression-test.png
build $textures/texture_compression_astc_10x8.dds: texturec_astc10x8 $pwd/texture-compression-test.png
build $textures/texture_compression_astc_10x10.dds: texturec_astc10x10 $pwd/texture-compression-test.png
build $textures/texture_compression_astc_12x10.dds: texturec_astc12x10 $pwd/texture-compression-test.png
build $textures/texture_compression_astc_12x12.dds: texturec_astc12x12 $pwd/texture-compression-test.png
build $textures/texture_compression_etc1.ktx: texturec_etc1 $pwd/texture-compression-test.png
build $textures/texture_compression_etc2.ktx: texturec_etc2 $pwd/texture-compression-test.png

build $textures/parallax-d.ktx: texturec_diffuse $pwd/parallax-d.png
build $textures/parallax-n.ktx: texturec_normal $pwd/parallax-n.png
Expand Down
Binary file not shown.
Binary file modified examples/runtime/textures/texture_compression_astc_10x5.dds
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified examples/runtime/textures/texture_compression_astc_4x4.dds
Binary file not shown.
Binary file not shown.
Binary file modified examples/runtime/textures/texture_compression_astc_5x5.dds
Binary file not shown.
Binary file not shown.
Binary file modified examples/runtime/textures/texture_compression_astc_6x6.dds
Binary file not shown.
Binary file modified examples/runtime/textures/texture_compression_astc_8x5.dds
Binary file not shown.
Binary file modified examples/runtime/textures/texture_compression_astc_8x6.dds
Binary file not shown.
Binary file not shown.
8 changes: 8 additions & 0 deletions include/bgfx/bgfx.h
Original file line number Diff line number Diff line change
Expand Up @@ -180,11 +180,19 @@ namespace bgfx
ATCE, //!< ATCE RGBA 8 BPP explicit alpha
ATCI, //!< ATCI RGBA 8 BPP interpolated alpha
ASTC4x4, //!< ASTC 4x4 8.0 BPP
ASTC5x4, //!< ASTC 5x4 6.40 BPP
ASTC5x5, //!< ASTC 5x5 5.12 BPP
ASTC6x5, //!< ASTC 6x5 4.27 BPP
ASTC6x6, //!< ASTC 6x6 3.56 BPP
ASTC8x5, //!< ASTC 8x5 3.20 BPP
ASTC8x6, //!< ASTC 8x6 2.67 BPP
ASTC8x8, //!< ASTC 8x8 2.00 BPP
ASTC10x5, //!< ASTC 10x5 2.56 BPP
ASTC10x6, //!< ASTC 10x6 2.13 BPP
ASTC10x8, //!< ASTC 10x8 1.60 BPP
ASTC10x10, //!< ASTC 10x10 1.28 BPP
ASTC12x10, //!< ASTC 12x10 1.07 BPP
ASTC12x12, //!< ASTC 12x12 0.89 BPP

Unknown, // Compressed formats above.

Expand Down
Loading

0 comments on commit c2bc517

Please sign in to comment.