Package org.lwjgl.vulkan
Class VkPhysicalDeviceFloatControlsProperties
java.lang.Object
org.lwjgl.system.Pointer.Default
org.lwjgl.system.Struct<VkPhysicalDeviceFloatControlsProperties>
org.lwjgl.vulkan.VkPhysicalDeviceFloatControlsProperties
- All Implemented Interfaces:
AutoCloseable,org.lwjgl.system.NativeResource,org.lwjgl.system.Pointer
- Direct Known Subclasses:
VkPhysicalDeviceFloatControlsPropertiesKHR
public class VkPhysicalDeviceFloatControlsProperties
extends org.lwjgl.system.Struct<VkPhysicalDeviceFloatControlsProperties>
implements org.lwjgl.system.NativeResource
Structure describing properties supported by VK_KHR_shader_float_controls.
Description
If the VkPhysicalDeviceFloatControlsProperties structure is included in the pNext chain of the VkPhysicalDeviceProperties2 structure passed to GetPhysicalDeviceProperties2, it is filled in with each corresponding implementation-dependent property.
Valid Usage (Implicit)
sTypemust beSTRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES
Layout
struct VkPhysicalDeviceFloatControlsProperties {
VkStructureType sType();
void * pNext();
VkShaderFloatControlsIndependence denormBehaviorIndependence();
VkShaderFloatControlsIndependence roundingModeIndependence();
VkBool32 shaderSignedZeroInfNanPreserveFloat16();
VkBool32 shaderSignedZeroInfNanPreserveFloat32();
VkBool32 shaderSignedZeroInfNanPreserveFloat64();
VkBool32 shaderDenormPreserveFloat16();
VkBool32 shaderDenormPreserveFloat32();
VkBool32 shaderDenormPreserveFloat64();
VkBool32 shaderDenormFlushToZeroFloat16();
VkBool32 shaderDenormFlushToZeroFloat32();
VkBool32 shaderDenormFlushToZeroFloat64();
VkBool32 shaderRoundingModeRTEFloat16();
VkBool32 shaderRoundingModeRTEFloat32();
VkBool32 shaderRoundingModeRTEFloat64();
VkBool32 shaderRoundingModeRTZFloat16();
VkBool32 shaderRoundingModeRTZFloat32();
VkBool32 shaderRoundingModeRTZFloat64();
}-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classAn array ofVkPhysicalDeviceFloatControlsPropertiesstructs.Nested classes/interfaces inherited from class org.lwjgl.system.Struct
org.lwjgl.system.Struct.StructValidationNested classes/interfaces inherited from interface org.lwjgl.system.Pointer
org.lwjgl.system.Pointer.Default -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThe struct alignment in bytes.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct size in bytes.static final intThe struct member offsets.Fields inherited from interface org.lwjgl.system.Pointer
BITS32, BITS64, CLONG_SHIFT, CLONG_SIZE, POINTER_SHIFT, POINTER_SIZE -
Constructor Summary
ConstructorsConstructorDescriptionCreates aVkPhysicalDeviceFloatControlsPropertiesinstance at the current position of the specifiedByteBuffercontainer. -
Method Summary
Modifier and TypeMethodDescriptioncalloc()Returns a newVkPhysicalDeviceFloatControlsPropertiesinstance allocated withmemCalloc.calloc(int capacity) Returns a newVkPhysicalDeviceFloatControlsProperties.Bufferinstance allocated withmemCalloc.calloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkPhysicalDeviceFloatControlsProperties.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.calloc(org.lwjgl.system.MemoryStack stack) Returns a newVkPhysicalDeviceFloatControlsPropertiesinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.create()Returns a newVkPhysicalDeviceFloatControlsPropertiesinstance allocated withBufferUtils.create(int capacity) Returns a newVkPhysicalDeviceFloatControlsProperties.Bufferinstance allocated withBufferUtils.create(long address) Returns a newVkPhysicalDeviceFloatControlsPropertiesinstance for the specified memory address.create(long address, int capacity) Create aVkPhysicalDeviceFloatControlsProperties.Bufferinstance at the specified memory.static @Nullable VkPhysicalDeviceFloatControlsPropertiescreateSafe(long address) static @Nullable VkPhysicalDeviceFloatControlsProperties.BuffercreateSafe(long address, int capacity) intaVkShaderFloatControlsIndependencevalue indicating whether, and how, denorm behavior can be set independently for different bit widths.malloc()Returns a newVkPhysicalDeviceFloatControlsPropertiesinstance allocated withmemAlloc.malloc(int capacity) Returns a newVkPhysicalDeviceFloatControlsProperties.Bufferinstance allocated withmemAlloc.malloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkPhysicalDeviceFloatControlsProperties.Bufferinstance allocated on the specifiedMemoryStack.malloc(org.lwjgl.system.MemoryStack stack) Returns a newVkPhysicalDeviceFloatControlsPropertiesinstance allocated on the specifiedMemoryStack.static intndenormBehaviorIndependence(long struct) Unsafe version ofdenormBehaviorIndependence().static longnpNext(long struct) Unsafe version ofpNext().static voidnpNext(long struct, long value) Unsafe version ofpNext.static intnroundingModeIndependence(long struct) Unsafe version ofroundingModeIndependence().static intnshaderDenormFlushToZeroFloat16(long struct) Unsafe version ofshaderDenormFlushToZeroFloat16().static intnshaderDenormFlushToZeroFloat32(long struct) Unsafe version ofshaderDenormFlushToZeroFloat32().static intnshaderDenormFlushToZeroFloat64(long struct) Unsafe version ofshaderDenormFlushToZeroFloat64().static intnshaderDenormPreserveFloat16(long struct) Unsafe version ofshaderDenormPreserveFloat16().static intnshaderDenormPreserveFloat32(long struct) Unsafe version ofshaderDenormPreserveFloat32().static intnshaderDenormPreserveFloat64(long struct) Unsafe version ofshaderDenormPreserveFloat64().static intnshaderRoundingModeRTEFloat16(long struct) Unsafe version ofshaderRoundingModeRTEFloat16().static intnshaderRoundingModeRTEFloat32(long struct) Unsafe version ofshaderRoundingModeRTEFloat32().static intnshaderRoundingModeRTEFloat64(long struct) Unsafe version ofshaderRoundingModeRTEFloat64().static intnshaderRoundingModeRTZFloat16(long struct) Unsafe version ofshaderRoundingModeRTZFloat16().static intnshaderRoundingModeRTZFloat32(long struct) Unsafe version ofshaderRoundingModeRTZFloat32().static intnshaderRoundingModeRTZFloat64(long struct) Unsafe version ofshaderRoundingModeRTZFloat64().static intnshaderSignedZeroInfNanPreserveFloat16(long struct) Unsafe version ofshaderSignedZeroInfNanPreserveFloat16().static intnshaderSignedZeroInfNanPreserveFloat32(long struct) Unsafe version ofshaderSignedZeroInfNanPreserveFloat32().static intnshaderSignedZeroInfNanPreserveFloat64(long struct) Unsafe version ofshaderSignedZeroInfNanPreserveFloat64().static intnsType(long struct) Unsafe version ofsType().static voidnsType(long struct, int value) Unsafe version ofsType.longpNext()NULLor a pointer to a structure extending this structure.pNext(long value) Sets the specified value to thepNext()field.intaVkShaderFloatControlsIndependencevalue indicating whether, and how, rounding modes can be set independently for different bit widths.set(int sType, long pNext) Initializes this struct with the specified values.Copies the specified struct data to this struct.booleana boolean value indicating whether denormals can be flushed to zero in 16-bit floating-point computations.booleana boolean value indicating whether denormals can be flushed to zero in 32-bit floating-point computations.booleana boolean value indicating whether denormals can be flushed to zero in 64-bit floating-point computations.booleana boolean value indicating whether denormals can be preserved in 16-bit floating-point computations.booleana boolean value indicating whether denormals can be preserved in 32-bit floating-point computations.booleana boolean value indicating whether denormals can be preserved in 64-bit floating-point computations.booleana boolean value indicating whether an implementation supports the round-to-nearest-even rounding mode for 16-bit floating-point arithmetic and conversion instructions.booleana boolean value indicating whether an implementation supports the round-to-nearest-even rounding mode for 32-bit floating-point arithmetic and conversion instructions.booleana boolean value indicating whether an implementation supports the round-to-nearest-even rounding mode for 64-bit floating-point arithmetic and conversion instructions.booleana boolean value indicating whether an implementation supports the round-towards-zero rounding mode for 16-bit floating-point arithmetic and conversion instructions.booleana boolean value indicating whether an implementation supports the round-towards-zero rounding mode for 32-bit floating-point arithmetic and conversion instructions.booleana boolean value indicating whether an implementation supports the round-towards-zero rounding mode for 64-bit floating-point arithmetic and conversion instructions.booleana boolean value indicating whether sign of a zero,Nans and ±∞ can be preserved in 16-bit floating-point computations.booleana boolean value indicating whether sign of a zero,Nans and ±∞ can be preserved in 32-bit floating-point computations.booleana boolean value indicating whether sign of a zero,Nans and ±∞ can be preserved in 64-bit floating-point computations.intsizeof()intsType()aVkStructureTypevalue identifying this structure.sType(int value) Sets the specified value to thesType()field.Sets theSTRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIESvalue to thesType()field.Methods inherited from class org.lwjgl.system.Struct
clear, free, isNull, validate, validateMethods inherited from class org.lwjgl.system.Pointer.Default
address, equals, hashCode, toStringMethods inherited from interface org.lwjgl.system.NativeResource
close, free
-
Field Details
-
SIZEOF
public static final int SIZEOFThe struct size in bytes. -
ALIGNOF
public static final int ALIGNOFThe struct alignment in bytes. -
STYPE
public static final int STYPEThe struct member offsets. -
PNEXT
public static final int PNEXTThe struct member offsets. -
DENORMBEHAVIORINDEPENDENCE
public static final int DENORMBEHAVIORINDEPENDENCEThe struct member offsets. -
ROUNDINGMODEINDEPENDENCE
public static final int ROUNDINGMODEINDEPENDENCEThe struct member offsets. -
SHADERSIGNEDZEROINFNANPRESERVEFLOAT16
public static final int SHADERSIGNEDZEROINFNANPRESERVEFLOAT16The struct member offsets. -
SHADERSIGNEDZEROINFNANPRESERVEFLOAT32
public static final int SHADERSIGNEDZEROINFNANPRESERVEFLOAT32The struct member offsets. -
SHADERSIGNEDZEROINFNANPRESERVEFLOAT64
public static final int SHADERSIGNEDZEROINFNANPRESERVEFLOAT64The struct member offsets. -
SHADERDENORMPRESERVEFLOAT16
public static final int SHADERDENORMPRESERVEFLOAT16The struct member offsets. -
SHADERDENORMPRESERVEFLOAT32
public static final int SHADERDENORMPRESERVEFLOAT32The struct member offsets. -
SHADERDENORMPRESERVEFLOAT64
public static final int SHADERDENORMPRESERVEFLOAT64The struct member offsets. -
SHADERDENORMFLUSHTOZEROFLOAT16
public static final int SHADERDENORMFLUSHTOZEROFLOAT16The struct member offsets. -
SHADERDENORMFLUSHTOZEROFLOAT32
public static final int SHADERDENORMFLUSHTOZEROFLOAT32The struct member offsets. -
SHADERDENORMFLUSHTOZEROFLOAT64
public static final int SHADERDENORMFLUSHTOZEROFLOAT64The struct member offsets. -
SHADERROUNDINGMODERTEFLOAT16
public static final int SHADERROUNDINGMODERTEFLOAT16The struct member offsets. -
SHADERROUNDINGMODERTEFLOAT32
public static final int SHADERROUNDINGMODERTEFLOAT32The struct member offsets. -
SHADERROUNDINGMODERTEFLOAT64
public static final int SHADERROUNDINGMODERTEFLOAT64The struct member offsets. -
SHADERROUNDINGMODERTZFLOAT16
public static final int SHADERROUNDINGMODERTZFLOAT16The struct member offsets. -
SHADERROUNDINGMODERTZFLOAT32
public static final int SHADERROUNDINGMODERTZFLOAT32The struct member offsets. -
SHADERROUNDINGMODERTZFLOAT64
public static final int SHADERROUNDINGMODERTZFLOAT64The struct member offsets.
-
-
Constructor Details
-
VkPhysicalDeviceFloatControlsProperties
Creates aVkPhysicalDeviceFloatControlsPropertiesinstance at the current position of the specifiedByteBuffercontainer. Changes to the buffer's content will be visible to the struct instance and vice versa.The created instance holds a strong reference to the container object.
-
-
Method Details
-
sizeof
public int sizeof()- Specified by:
sizeofin classorg.lwjgl.system.Struct<VkPhysicalDeviceFloatControlsProperties>
-
sType
public int sType()aVkStructureTypevalue identifying this structure. -
pNext
public long pNext()NULLor a pointer to a structure extending this structure. -
denormBehaviorIndependence
public int denormBehaviorIndependence()aVkShaderFloatControlsIndependencevalue indicating whether, and how, denorm behavior can be set independently for different bit widths. -
roundingModeIndependence
public int roundingModeIndependence()aVkShaderFloatControlsIndependencevalue indicating whether, and how, rounding modes can be set independently for different bit widths. -
shaderSignedZeroInfNanPreserveFloat16
public boolean shaderSignedZeroInfNanPreserveFloat16()a boolean value indicating whether sign of a zero,Nans and ±∞ can be preserved in 16-bit floating-point computations. It also indicates whether theSignedZeroInfNanPreserveexecution mode can be used for 16-bit floating-point types. -
shaderSignedZeroInfNanPreserveFloat32
public boolean shaderSignedZeroInfNanPreserveFloat32()a boolean value indicating whether sign of a zero,Nans and ±∞ can be preserved in 32-bit floating-point computations. It also indicates whether theSignedZeroInfNanPreserveexecution mode can be used for 32-bit floating-point types. -
shaderSignedZeroInfNanPreserveFloat64
public boolean shaderSignedZeroInfNanPreserveFloat64()a boolean value indicating whether sign of a zero,Nans and ±∞ can be preserved in 64-bit floating-point computations. It also indicates whether theSignedZeroInfNanPreserveexecution mode can be used for 64-bit floating-point types. -
shaderDenormPreserveFloat16
public boolean shaderDenormPreserveFloat16()a boolean value indicating whether denormals can be preserved in 16-bit floating-point computations. It also indicates whether theDenormPreserveexecution mode can be used for 16-bit floating-point types. -
shaderDenormPreserveFloat32
public boolean shaderDenormPreserveFloat32()a boolean value indicating whether denormals can be preserved in 32-bit floating-point computations. It also indicates whether theDenormPreserveexecution mode can be used for 32-bit floating-point types. -
shaderDenormPreserveFloat64
public boolean shaderDenormPreserveFloat64()a boolean value indicating whether denormals can be preserved in 64-bit floating-point computations. It also indicates whether theDenormPreserveexecution mode can be used for 64-bit floating-point types. -
shaderDenormFlushToZeroFloat16
public boolean shaderDenormFlushToZeroFloat16()a boolean value indicating whether denormals can be flushed to zero in 16-bit floating-point computations. It also indicates whether theDenormFlushToZeroexecution mode can be used for 16-bit floating-point types. -
shaderDenormFlushToZeroFloat32
public boolean shaderDenormFlushToZeroFloat32()a boolean value indicating whether denormals can be flushed to zero in 32-bit floating-point computations. It also indicates whether theDenormFlushToZeroexecution mode can be used for 32-bit floating-point types. -
shaderDenormFlushToZeroFloat64
public boolean shaderDenormFlushToZeroFloat64()a boolean value indicating whether denormals can be flushed to zero in 64-bit floating-point computations. It also indicates whether theDenormFlushToZeroexecution mode can be used for 64-bit floating-point types. -
shaderRoundingModeRTEFloat16
public boolean shaderRoundingModeRTEFloat16()a boolean value indicating whether an implementation supports the round-to-nearest-even rounding mode for 16-bit floating-point arithmetic and conversion instructions. It also indicates whether theRoundingModeRTEexecution mode can be used for 16-bit floating-point types. -
shaderRoundingModeRTEFloat32
public boolean shaderRoundingModeRTEFloat32()a boolean value indicating whether an implementation supports the round-to-nearest-even rounding mode for 32-bit floating-point arithmetic and conversion instructions. It also indicates whether theRoundingModeRTEexecution mode can be used for 32-bit floating-point types. -
shaderRoundingModeRTEFloat64
public boolean shaderRoundingModeRTEFloat64()a boolean value indicating whether an implementation supports the round-to-nearest-even rounding mode for 64-bit floating-point arithmetic and conversion instructions. It also indicates whether theRoundingModeRTEexecution mode can be used for 64-bit floating-point types. -
shaderRoundingModeRTZFloat16
public boolean shaderRoundingModeRTZFloat16()a boolean value indicating whether an implementation supports the round-towards-zero rounding mode for 16-bit floating-point arithmetic and conversion instructions. It also indicates whether theRoundingModeRTZexecution mode can be used for 16-bit floating-point types. -
shaderRoundingModeRTZFloat32
public boolean shaderRoundingModeRTZFloat32()a boolean value indicating whether an implementation supports the round-towards-zero rounding mode for 32-bit floating-point arithmetic and conversion instructions. It also indicates whether theRoundingModeRTZexecution mode can be used for 32-bit floating-point types. -
shaderRoundingModeRTZFloat64
public boolean shaderRoundingModeRTZFloat64()a boolean value indicating whether an implementation supports the round-towards-zero rounding mode for 64-bit floating-point arithmetic and conversion instructions. It also indicates whether theRoundingModeRTZexecution mode can be used for 64-bit floating-point types. -
sType
Sets the specified value to thesType()field. -
sType$Default
Sets theSTRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIESvalue to thesType()field. -
pNext
Sets the specified value to thepNext()field. -
set
Initializes this struct with the specified values. -
set
Copies the specified struct data to this struct.- Parameters:
src- the source struct- Returns:
- this struct
-
malloc
Returns a newVkPhysicalDeviceFloatControlsPropertiesinstance allocated withmemAlloc. The instance must be explicitly freed. -
calloc
Returns a newVkPhysicalDeviceFloatControlsPropertiesinstance allocated withmemCalloc. The instance must be explicitly freed. -
create
Returns a newVkPhysicalDeviceFloatControlsPropertiesinstance allocated withBufferUtils. -
create
Returns a newVkPhysicalDeviceFloatControlsPropertiesinstance for the specified memory address. -
createSafe
-
malloc
Returns a newVkPhysicalDeviceFloatControlsProperties.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
Returns a newVkPhysicalDeviceFloatControlsProperties.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
Returns a newVkPhysicalDeviceFloatControlsProperties.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
Create aVkPhysicalDeviceFloatControlsProperties.Bufferinstance at the specified memory.- Parameters:
address- the memory addresscapacity- the buffer capacity
-
createSafe
public static @Nullable VkPhysicalDeviceFloatControlsProperties.Buffer createSafe(long address, int capacity) -
malloc
Returns a newVkPhysicalDeviceFloatControlsPropertiesinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
calloc
Returns a newVkPhysicalDeviceFloatControlsPropertiesinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
malloc
public static VkPhysicalDeviceFloatControlsProperties.Buffer malloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkPhysicalDeviceFloatControlsProperties.Bufferinstance allocated on the specifiedMemoryStack.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
calloc
public static VkPhysicalDeviceFloatControlsProperties.Buffer calloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkPhysicalDeviceFloatControlsProperties.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
nsType
public static int nsType(long struct) Unsafe version ofsType(). -
npNext
public static long npNext(long struct) Unsafe version ofpNext(). -
ndenormBehaviorIndependence
public static int ndenormBehaviorIndependence(long struct) Unsafe version ofdenormBehaviorIndependence(). -
nroundingModeIndependence
public static int nroundingModeIndependence(long struct) Unsafe version ofroundingModeIndependence(). -
nshaderSignedZeroInfNanPreserveFloat16
public static int nshaderSignedZeroInfNanPreserveFloat16(long struct) Unsafe version ofshaderSignedZeroInfNanPreserveFloat16(). -
nshaderSignedZeroInfNanPreserveFloat32
public static int nshaderSignedZeroInfNanPreserveFloat32(long struct) Unsafe version ofshaderSignedZeroInfNanPreserveFloat32(). -
nshaderSignedZeroInfNanPreserveFloat64
public static int nshaderSignedZeroInfNanPreserveFloat64(long struct) Unsafe version ofshaderSignedZeroInfNanPreserveFloat64(). -
nshaderDenormPreserveFloat16
public static int nshaderDenormPreserveFloat16(long struct) Unsafe version ofshaderDenormPreserveFloat16(). -
nshaderDenormPreserveFloat32
public static int nshaderDenormPreserveFloat32(long struct) Unsafe version ofshaderDenormPreserveFloat32(). -
nshaderDenormPreserveFloat64
public static int nshaderDenormPreserveFloat64(long struct) Unsafe version ofshaderDenormPreserveFloat64(). -
nshaderDenormFlushToZeroFloat16
public static int nshaderDenormFlushToZeroFloat16(long struct) Unsafe version ofshaderDenormFlushToZeroFloat16(). -
nshaderDenormFlushToZeroFloat32
public static int nshaderDenormFlushToZeroFloat32(long struct) Unsafe version ofshaderDenormFlushToZeroFloat32(). -
nshaderDenormFlushToZeroFloat64
public static int nshaderDenormFlushToZeroFloat64(long struct) Unsafe version ofshaderDenormFlushToZeroFloat64(). -
nshaderRoundingModeRTEFloat16
public static int nshaderRoundingModeRTEFloat16(long struct) Unsafe version ofshaderRoundingModeRTEFloat16(). -
nshaderRoundingModeRTEFloat32
public static int nshaderRoundingModeRTEFloat32(long struct) Unsafe version ofshaderRoundingModeRTEFloat32(). -
nshaderRoundingModeRTEFloat64
public static int nshaderRoundingModeRTEFloat64(long struct) Unsafe version ofshaderRoundingModeRTEFloat64(). -
nshaderRoundingModeRTZFloat16
public static int nshaderRoundingModeRTZFloat16(long struct) Unsafe version ofshaderRoundingModeRTZFloat16(). -
nshaderRoundingModeRTZFloat32
public static int nshaderRoundingModeRTZFloat32(long struct) Unsafe version ofshaderRoundingModeRTZFloat32(). -
nshaderRoundingModeRTZFloat64
public static int nshaderRoundingModeRTZFloat64(long struct) Unsafe version ofshaderRoundingModeRTZFloat64(). -
nsType
public static void nsType(long struct, int value) Unsafe version ofsType. -
npNext
public static void npNext(long struct, long value) Unsafe version ofpNext.
-