diff --git a/doc.go b/doc.go index ccc33c2d8..3715e4f81 100644 --- a/doc.go +++ b/doc.go @@ -81,10 +81,6 @@ // "warp": Use WARP (i.e. software rendering). // "debug": Use a debug layer. // -// `EBITENGINE_DIRECTX_FEATURE_LEVEL` environment variable specifies DirectX feature level. -// The possible values are "11_0", "11_1", "12_0", "12_1", and "12_2". -// The default value is "11_0". -// // # Build tags // // `ebitenginedebug` outputs a log of graphics commands. This is useful to know what happens in Ebitengine. In general, the diff --git a/internal/graphicsdriver/directx/api_windows.go b/internal/graphicsdriver/directx/api_windows.go index 75961dcad..36af5160a 100644 --- a/internal/graphicsdriver/directx/api_windows.go +++ b/internal/graphicsdriver/directx/api_windows.go @@ -76,10 +76,6 @@ type _D3D_FEATURE_LEVEL int32 const ( _D3D_FEATURE_LEVEL_11_0 _D3D_FEATURE_LEVEL = 0xb000 - _D3D_FEATURE_LEVEL_11_1 _D3D_FEATURE_LEVEL = 0xb100 - _D3D_FEATURE_LEVEL_12_0 _D3D_FEATURE_LEVEL = 0xc000 - _D3D_FEATURE_LEVEL_12_1 _D3D_FEATURE_LEVEL = 0xc100 - _D3D_FEATURE_LEVEL_12_2 _D3D_FEATURE_LEVEL = 0xc200 ) type _D3D_PRIMITIVE_TOPOLOGY int32 diff --git a/internal/graphicsdriver/directx/graphics_windows.go b/internal/graphicsdriver/directx/graphics_windows.go index 1c94b8e5e..daf019882 100644 --- a/internal/graphicsdriver/directx/graphics_windows.go +++ b/internal/graphicsdriver/directx/graphics_windows.go @@ -181,24 +181,6 @@ func (g *Graphics) initialize() (ferr error) { } } - // Specify the level 11 by default. - // Some old cards don't work well with the default feature level (#2447, #2486). - var featureLevel _D3D_FEATURE_LEVEL = _D3D_FEATURE_LEVEL_11_0 - if env := os.Getenv("EBITENGINE_DIRECTX_FEATURE_LEVEL"); env != "" { - switch env { - case "11_0": - featureLevel = _D3D_FEATURE_LEVEL_11_0 - case "11_1": - featureLevel = _D3D_FEATURE_LEVEL_11_1 - case "12_0": - featureLevel = _D3D_FEATURE_LEVEL_12_0 - case "12_1": - featureLevel = _D3D_FEATURE_LEVEL_12_1 - case "12_2": - featureLevel = _D3D_FEATURE_LEVEL_12_2 - } - } - // Initialize not only a device but also other members like a fence. // Even if initializing a device succeeds, initializing a fence might fail (#2142). @@ -207,15 +189,14 @@ func (g *Graphics) initialize() (ferr error) { return err } } else { - if err := g.initializeDesktop(useWARP, useDebugLayer, featureLevel); err != nil { + if err := g.initializeDesktop(useWARP, useDebugLayer); err != nil { return err } } - return nil } -func (g *Graphics) initializeDesktop(useWARP bool, useDebugLayer bool, featureLevel _D3D_FEATURE_LEVEL) (ferr error) { +func (g *Graphics) initializeDesktop(useWARP bool, useDebugLayer bool) (ferr error) { if err := d3d12.Load(); err != nil { return err } @@ -282,7 +263,7 @@ func (g *Graphics) initializeDesktop(useWARP bool, useDebugLayer bool, featureLe continue } // Test D3D12CreateDevice without creating an actual device. - if _, err := _D3D12CreateDevice(unsafe.Pointer(a), featureLevel, &_IID_ID3D12Device, false); err != nil { + if _, err := _D3D12CreateDevice(unsafe.Pointer(a), _D3D_FEATURE_LEVEL_11_0, &_IID_ID3D12Device, false); err != nil { continue } @@ -295,7 +276,7 @@ func (g *Graphics) initializeDesktop(useWARP bool, useDebugLayer bool, featureLe return errors.New("directx: DirectX 12 is not supported") } - d, err := _D3D12CreateDevice(unsafe.Pointer(adapter), featureLevel, &_IID_ID3D12Device, true) + d, err := _D3D12CreateDevice(unsafe.Pointer(adapter), _D3D_FEATURE_LEVEL_11_0, &_IID_ID3D12Device, true) if err != nil { return err }