Re: netsurf-fb fails on framebuffer console

2019-12-25 Thread Jonathan Gray
On Wed, Dec 25, 2019 at 04:20:04PM +0530, putridsou...@gmail.com wrote:
> The port maintainer has confirmed both sdl and x interface 
> for netsurf-fb require X.
> Is it possible to modify sdl source code to work with openbsd 
> framebuffer driver? In my case it's inteldrm driver.

There is old code in sdl that does wsdisplay ioctls but it doesn't
handle the inteldrm display type.

The kernel side would need at least this diff and likely more:

Index: sys/dev/pci/drm/amd/amdgpu/amdgpu_kms.c
===
RCS file: /cvs/src/sys/dev/pci/drm/amd/amdgpu/amdgpu_kms.c,v
retrieving revision 1.8
diff -u -p -r1.8 amdgpu_kms.c
--- sys/dev/pci/drm/amd/amdgpu/amdgpu_kms.c 25 Dec 2019 11:42:05 -  
1.8
+++ sys/dev/pci/drm/amd/amdgpu/amdgpu_kms.c 25 Dec 2019 11:49:50 -
@@ -1648,6 +1648,9 @@ amdgpu_wsioctl(void *v, u_long cmd, cadd
wdf->depth = ri->ri_depth;
wdf->cmsize = 0;
return 0;
+   case WSDISPLAYIO_LINEBYTES:
+   *(u_int *)data = ri->ri_stride;
+   return 0;
case WSDISPLAYIO_GETPARAM:
if (bd == NULL)
return -1;
Index: sys/dev/pci/drm/i915/i915_drv.c
===
RCS file: /cvs/src/sys/dev/pci/drm/i915/i915_drv.c,v
retrieving revision 1.126
diff -u -p -r1.126 i915_drv.c
--- sys/dev/pci/drm/i915/i915_drv.c 25 Dec 2019 11:42:05 -  1.126
+++ sys/dev/pci/drm/i915/i915_drv.c 25 Dec 2019 11:49:51 -
@@ -3225,6 +3225,9 @@ inteldrm_wsioctl(void *v, u_long cmd, ca
wdf->depth = ri->ri_depth;
wdf->cmsize = 0;
return 0;
+   case WSDISPLAYIO_LINEBYTES:
+   *(u_int *)data = ri->ri_stride;
+   return 0;
case WSDISPLAYIO_GETPARAM:
if (ws_get_param && ws_get_param(dp) == 0)
return 0;
Index: sys/dev/pci/drm/radeon/radeon_kms.c
===
RCS file: /cvs/src/sys/dev/pci/drm/radeon/radeon_kms.c,v
retrieving revision 1.63
diff -u -p -r1.63 radeon_kms.c
--- sys/dev/pci/drm/radeon/radeon_kms.c 25 Dec 2019 11:42:05 -  1.63
+++ sys/dev/pci/drm/radeon/radeon_kms.c 25 Dec 2019 11:49:51 -
@@ -231,6 +231,9 @@ radeondrm_wsioctl(void *v, u_long cmd, c
wdf->depth = ri->ri_depth;
wdf->cmsize = 0;
return 0;
+   case WSDISPLAYIO_LINEBYTES:
+   *(u_int *)data = ri->ri_stride;
+   return 0;
default:
return -1;
}



Re: netsurf-fb fails on framebuffer console

2019-12-25 Thread putridsoul66
The port maintainer has confirmed both sdl and x interface 
for netsurf-fb require X.
Is it possible to modify sdl source code to work with openbsd 
framebuffer driver? In my case it's inteldrm driver.

Anyway here is dmesg.

OpenBSD 6.6-current (GENERIC.MP) #563: Tue Dec 24 02:24:52 MST 2019
dera...@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 8449933312 (8058MB)
avail mem = 8181399552 (7802MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.8 @ 0xc9cc7000 (90 entries)
bios0: vendor American Megatrends Inc. version "C4" date 12/03/2018
bios0: Gigabyte Technology Co., Ltd. H110M-H
acpi0 at bios0: ACPI 6.0
acpi0: sleep states S0 S3 S4 S5
acpi0: tables DSDT FACP APIC FPDT FIDT MCFG SSDT SSDT HPET SSDT SSDT UEFI SSDT 
LPIT SSDT SSDT SSDT SSDT SSDT DBGP DBG2 BGRT WSMT
acpi0: wakeup devices PS2K(S3) RP09(S4) PXSX(S4) RP10(S4) PXSX(S4) RP11(S4) 
PXSX(S4) RP12(S4) PXSX(S4) RP13(S4) PXSX(S4) RP01(S4) PXSX(S4) RP02(S4) 
PXSX(S4) RP03(S4) [...]
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpimadt0 at acpi0 addr 0xfee0: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel(R) Core(TM) i3-8100 CPU @ 3.60GHz, 3601.35 MHz, 06-9e-0b
cpu0: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,TSC_ADJUST,SGX,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PT,MD_CLEAR,TSXFA,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,XSAVEC,XGETBV1,XSAVES,MELTDOWN
cpu0: 256KB 64b/line 8-way L2 cache
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges
cpu0: apic clock running at 24MHz
cpu0: mwait min=64, max=64, C-substates=0.2.1.2.4.1.1.1, IBE
cpu1 at mainbus0: apid 2 (application processor)
cpu1: Intel(R) Core(TM) i3-8100 CPU @ 3.60GHz, 3600.01 MHz, 06-9e-0b
cpu1: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,TSC_ADJUST,SGX,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PT,MD_CLEAR,TSXFA,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,XSAVEC,XGETBV1,XSAVES,MELTDOWN
cpu1: 256KB 64b/line 8-way L2 cache
cpu1: smt 0, core 1, package 0
cpu2 at mainbus0: apid 4 (application processor)
cpu2: Intel(R) Core(TM) i3-8100 CPU @ 3.60GHz, 3600.01 MHz, 06-9e-0b
cpu2: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,TSC_ADJUST,SGX,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PT,MD_CLEAR,TSXFA,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,XSAVEC,XGETBV1,XSAVES,MELTDOWN
cpu2: 256KB 64b/line 8-way L2 cache
cpu2: smt 0, core 2, package 0
cpu3 at mainbus0: apid 6 (application processor)
cpu3: Intel(R) Core(TM) i3-8100 CPU @ 3.60GHz, 3600.01 MHz, 06-9e-0b
cpu3: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,TSC_ADJUST,SGX,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PT,MD_CLEAR,TSXFA,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,XSAVEC,XGETBV1,XSAVES,MELTDOWN
cpu3: 256KB 64b/line 8-way L2 cache
cpu3: smt 0, core 3, package 0
ioapic0 at mainbus0: apid 2 pa 0xfec0, version 20, 120 pins
acpimcfg0 at acpi0
acpimcfg0: addr 0xf800, bus 0-63
acpihpet0 at acpi0: 2399 Hz
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus -1 (PEG0)
acpiprt2 at acpi0: bus -1 (PEG1)
acpiprt3 at acpi0: bus -1 (PEG2)
acpiprt4 at acpi0: bus 5 (RP09)
acpiprt5 at acpi0: bus 6 (RP10)
acpiprt6 at acpi0: bus -1 (RP11)
acpiprt7 at acpi0: bus -1 (RP12)
acpiprt8 at acpi0: bus -1 (RP13)
acpiprt9 at acpi0: bus -1 (RP01)
acpiprt10 at acpi0: bus -1 (RP02)
acpiprt11 at acpi0: bus -1 (RP03)
acpiprt12 at acpi0: bus -1 (RP04)
acpiprt13 at acpi0: bus 1 (RP05)
acpiprt14 at acpi0: bus 2 (RP06)
acpiprt15 at acpi0: bus 3 (RP07)
acpiprt16 at acpi0: bus 4 (RP08)
acpiprt17 at acpi0: bus -1 (RP17)
acpiprt18 at acpi0: bus -1 (RP18)
acpiprt19 at acpi0: bus -1 (RP19)
acpiprt20 at acpi0: bus -1 (RP20)
acpiprt21 at acpi0: bus -1 (RP21)
acpiprt22 at acpi0: bus -1 (RP22)
acpiprt23 at acpi0: bus -1 (RP23)

Re: netsurf-fb fails on framebuffer console

2019-12-25 Thread Jonathan Gray
On Wed, Dec 25, 2019 at 01:57:01PM +0530, putridsou...@gmail.com wrote:
> I'm running openbsd 6.6-current Dec24 snapshot 
> 
> The browser works perfectly within X.
> But fails without it.
> Following output is given by command:netsurf-fb -v
> 
> (0.00) utils/log.c:264 nserror nslog_init(nslog_ensure_t *, int *, char 
> **): NetSurf version '3.9 (17th July 2019)'
> (0.59) utils/log.c:275 nserror nslog_init(nslog_ensure_t *, int *, char 
> **): NetSurf on , node , release <6.6>, 
> version , machine 
> (0.000144) utils/messages.c:140 nserror messages_add_from_file(const char *): 
> Loading Messages from '/usr/local/share/netsurf-fb/Messages'
> (0.002182) content/handlers/image/image_cache.c:432 nserror 
> image_cache_init(const struct image_cache_parameters *): Image cache 
> initialised with a limit of 3145728 hysteresis of 629145
> (0.002204) content/handlers/html/html_css_fetcher.c:70 _Bool 
> html_css_fetcher_initialise(lwc_string *): html_css_fetcher_initialise called 
> for x-ns-css
> (0.002310) content/fetchers/curl.c:1493 nserror fetch_curl_register(void): 
> curl_version libcurl/7.67.0 LibreSSL/3.0.2 zlib/1.2.3 nghttp2/1.40.0
> (0.004905) utils/useragent.c:69 void user_agent_build_string(void): Built 
> user agent "NetSurf/3.9 (OpenBSD)"
> (0.004914) content/fetchers/curl.c:1584 nserror fetch_curl_register(void): 
> cURL linked against openssl
> (0.004931) content/fetchers/curl.c:177 _Bool fetch_curl_initialise(lwc_string 
> *): Initialise cURL fetcher for http
> (0.004936) content/fetchers/curl.c:177 _Bool fetch_curl_initialise(lwc_string 
> *): Initialise cURL fetcher for https
> (0.004943) content/fetchers/data.c:61 _Bool fetch_data_initialise(lwc_string 
> *): fetch_data_initialise called for data
> (0.004983) content/fetchers/resource.c:288 _Bool 
> fetch_resource_initialise(lwc_string *): redirect url for adblock.css
> (0.005008) content/fetchers/resource.c:288 _Bool 
> fetch_resource_initialise(lwc_string *): redirect url for default.css
> (0.005027) content/fetchers/resource.c:288 _Bool 
> fetch_resource_initialise(lwc_string *): redirect url for internal.css
> (0.005043) content/fetchers/resource.c:288 _Bool 
> fetch_resource_initialise(lwc_string *): redirect url for quirks.css
> (0.005077) content/fetchers/resource.c:288 _Bool 
> fetch_resource_initialise(lwc_string *): redirect url for credits.html
> (0.005097) content/fetchers/resource.c:288 _Bool 
> fetch_resource_initialise(lwc_string *): redirect url for licence.html
> (0.005122) content/fetchers/resource.c:288 _Bool 
> fetch_resource_initialise(lwc_string *): redirect url for welcome.html
> (0.005139) content/fetchers/resource.c:288 _Bool 
> fetch_resource_initialise(lwc_string *): redirect url for maps.html
> (0.005191) content/fetchers/resource.c:288 _Bool 
> fetch_resource_initialise(lwc_string *): redirect url for netsurf.png
> (0.005279) content/llcache.c:3510 nserror llcache_initialise(const struct 
> llcache_parameters *): llcache initialising with a limit of 9437184 bytes
> (0.005302) frontends/framebuffer/gui.c:469 _Bool process_cmdline(int, char 
> **): argc 1, argv 0x7f7f7488
> WSCONS error: ioctl WSDISPLAYIO_LINEBYTES: Inappropriate ioctl for device
> Unable to init SDL: ioctl WSDISPLAYIO_LINEBYTES: Inappropriate ioctl for 
> device
> (0.008676) frontends/framebuffer/framebuffer.c:609 nsfb_t 
> *framebuffer_initialise(const char *, int, int, int): Unable to initialise 
> nsfb surface
> 
> Unable to initialise framebuffer
> 
> 

wsdisplay ioctls depend on the hardware you have, you need to include a
dmesg.

drm drivers do not implement WSDISPLAYIO_LINEBYTES but could do so
easily enough with ri->ri_stride from the first fb.

Whoever last touched the wscons code in libsdl 1.x only seems to have
cared about sparc and zaurus framebuffers.  The code does not handle
other display types.  And there are multiple fb encoding formats for
each drm framebuffer so deciding that based on the display type is
going to be wrong in at least some cases.



Re: netsurf-fb fails on framebuffer console

2019-12-25 Thread Anthony J. Bentley
putridsou...@gmail.com writes:
> I'm running openbsd 6.6-current Dec24 snapshot 
>
> The browser works perfectly within X.
> But fails without it.
> Following output is given by command:netsurf-fb -v

Framebuffer targets supported by netsurf-fb are those implemented by
libnsfb. From libnsfb.h:

/** The type of framebuffer surface. */
enum nsfb_type_e {
NSFB_SURFACE_NONE = 0, /**< No surface */
NSFB_SURFACE_RAM, /**< RAM surface */
NSFB_SURFACE_SDL, /**< SDL surface */
NSFB_SURFACE_LINUX, /**< Linux framebuffer surface */
NSFB_SURFACE_VNC, /**< VNC surface */
NSFB_SURFACE_ABLE, /**< ABLE framebuffer surface */
NSFB_SURFACE_X, /**< X windows surface */
NSFB_SURFACE_WL /**< Wayland surface */
};

Our package enables all targets that work on OpenBSD. Those are the SDL
(netsurf-fb -f sdl) and XCB (netsurf-fb -f x) targets.
Both of them require X.

-- 
Anthony J. Bentley



netsurf-fb fails on framebuffer console

2019-12-25 Thread putridsoul66
I'm running openbsd 6.6-current Dec24 snapshot 

The browser works perfectly within X.
But fails without it.
Following output is given by command:netsurf-fb -v

(0.00) utils/log.c:264 nserror nslog_init(nslog_ensure_t *, int *, char 
**): NetSurf version '3.9 (17th July 2019)'
(0.59) utils/log.c:275 nserror nslog_init(nslog_ensure_t *, int *, char 
**): NetSurf on , node , release <6.6>, 
version , machine 
(0.000144) utils/messages.c:140 nserror messages_add_from_file(const char *): 
Loading Messages from '/usr/local/share/netsurf-fb/Messages'
(0.002182) content/handlers/image/image_cache.c:432 nserror 
image_cache_init(const struct image_cache_parameters *): Image cache 
initialised with a limit of 3145728 hysteresis of 629145
(0.002204) content/handlers/html/html_css_fetcher.c:70 _Bool 
html_css_fetcher_initialise(lwc_string *): html_css_fetcher_initialise called 
for x-ns-css
(0.002310) content/fetchers/curl.c:1493 nserror fetch_curl_register(void): 
curl_version libcurl/7.67.0 LibreSSL/3.0.2 zlib/1.2.3 nghttp2/1.40.0
(0.004905) utils/useragent.c:69 void user_agent_build_string(void): Built user 
agent "NetSurf/3.9 (OpenBSD)"
(0.004914) content/fetchers/curl.c:1584 nserror fetch_curl_register(void): cURL 
linked against openssl
(0.004931) content/fetchers/curl.c:177 _Bool fetch_curl_initialise(lwc_string 
*): Initialise cURL fetcher for http
(0.004936) content/fetchers/curl.c:177 _Bool fetch_curl_initialise(lwc_string 
*): Initialise cURL fetcher for https
(0.004943) content/fetchers/data.c:61 _Bool fetch_data_initialise(lwc_string 
*): fetch_data_initialise called for data
(0.004983) content/fetchers/resource.c:288 _Bool 
fetch_resource_initialise(lwc_string *): redirect url for adblock.css
(0.005008) content/fetchers/resource.c:288 _Bool 
fetch_resource_initialise(lwc_string *): redirect url for default.css
(0.005027) content/fetchers/resource.c:288 _Bool 
fetch_resource_initialise(lwc_string *): redirect url for internal.css
(0.005043) content/fetchers/resource.c:288 _Bool 
fetch_resource_initialise(lwc_string *): redirect url for quirks.css
(0.005077) content/fetchers/resource.c:288 _Bool 
fetch_resource_initialise(lwc_string *): redirect url for credits.html
(0.005097) content/fetchers/resource.c:288 _Bool 
fetch_resource_initialise(lwc_string *): redirect url for licence.html
(0.005122) content/fetchers/resource.c:288 _Bool 
fetch_resource_initialise(lwc_string *): redirect url for welcome.html
(0.005139) content/fetchers/resource.c:288 _Bool 
fetch_resource_initialise(lwc_string *): redirect url for maps.html
(0.005191) content/fetchers/resource.c:288 _Bool 
fetch_resource_initialise(lwc_string *): redirect url for netsurf.png
(0.005279) content/llcache.c:3510 nserror llcache_initialise(const struct 
llcache_parameters *): llcache initialising with a limit of 9437184 bytes
(0.005302) frontends/framebuffer/gui.c:469 _Bool process_cmdline(int, char **): 
argc 1, argv 0x7f7f7488
WSCONS error: ioctl WSDISPLAYIO_LINEBYTES: Inappropriate ioctl for device
Unable to init SDL: ioctl WSDISPLAYIO_LINEBYTES: Inappropriate ioctl for device
(0.008676) frontends/framebuffer/framebuffer.c:609 nsfb_t 
*framebuffer_initialise(const char *, int, int, int): Unable to initialise nsfb 
surface

Unable to initialise framebuffer